@projectcor/maia-components 2.11.32-2 → 2.11.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
  2. package/lib/components/atoms/icons/index.js +1 -2
  3. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +10 -41
  4. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +4 -7
  5. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -16
  6. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +178 -165
  7. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +64 -293
  8. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +3 -11
  9. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +9 -10
  10. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +6 -37
  11. package/lib/components/molecules/Sidebar/Sidebar.js +323 -269
  12. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +22 -17
  13. package/lib/components/molecules/Sidebar/Sidebar.styles.js +37 -54
  14. package/lib/dev/Providers.js +2 -2
  15. package/lib/hooks/useChatManager/useChatManager.js +103 -59
  16. package/lib/hooks/useChats/useChats.js +4 -12
  17. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -70
  18. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  19. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +189 -0
  20. package/lib/hooks/useStreamingMessage/index.js +3 -0
  21. package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
  22. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +22 -0
  23. package/lib/lang/br/index.js +2 -11
  24. package/lib/lang/en/index.js +2 -11
  25. package/lib/lang/es/index.js +2 -11
  26. package/lib/lang/fr/index.js +2 -11
  27. package/lib/mocks/mockChats.js +395 -0
  28. package/lib/mocks/mockedUser.js +169 -0
  29. package/lib/services/maia/Chats/getChatsByUserId.js +8 -14
  30. package/lib/services/maia/Chats/index.js +1 -7
  31. package/lib/services/maia/client.js +9 -44
  32. package/lib/store/chatsStore.types.js +2 -10
  33. package/lib/store/useChatsStore.js +37 -75
  34. package/lib/types/Chat.js +1 -3
  35. package/package.json +1 -1
  36. package/lib/components/atoms/icons/ChatConversation.js +0 -40
  37. package/lib/components/molecules/Sidebar/SidebarChats.styles.js +0 -73
  38. package/lib/components/molecules/Sidebar/SidebarChatsSection.js +0 -69
  39. package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +0 -150
  40. package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +0 -238
  41. package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +0 -70
  42. package/lib/components/molecules/Sidebar/sidebarChats.types.js +0 -14
  43. package/lib/dev/fixtures/devUser.js +0 -173
  44. package/lib/dev/fixtures/mockedUser.js +0 -169
  45. package/lib/services/maia/Chats/getChatMessagesV2.js +0 -114
  46. package/lib/services/maia/Chats/getSessionByAgent.js +0 -66
  47. package/lib/services/maia/Chats/getSessionsGroupedV2.js +0 -70
@@ -41,8 +41,7 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
41
41
  loadMoreAgents = _ref.loadMoreAgents,
42
42
  sortAgentsList = _ref.sortAgentsList,
43
43
  _ref$hideAgentSelecto = _ref.hideAgentSelector,
44
- hideAgentSelector = _ref$hideAgentSelecto === void 0 ? false : _ref$hideAgentSelecto,
45
- onAgentSelected = _ref.onAgentSelected;
44
+ hideAgentSelector = _ref$hideAgentSelecto === void 0 ? false : _ref$hideAgentSelecto;
46
45
  var _useTranslation = useTranslation([SECTIONS.abmAgent]),
47
46
  t = _useTranslation.t;
48
47
  var user = useUser();
@@ -125,15 +124,8 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
125
124
  setClient === null || setClient === void 0 || setClient(null);
126
125
  setTimeout(function () {
127
126
  handleResetChat();
128
- // Si el agente no depende de una entity (custom o clone+global) ya podemos
129
- // resolver si existe una sesión previa y, en ese caso, navegar a ella.
130
- // Para clone+project|client, la resolución ocurre en los selectors de entity.
131
- var needsEntity = (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' && ((agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' || (agent === null || agent === void 0 ? void 0 : agent.entity) === 'client');
132
- if (!needsEntity) {
133
- onAgentSelected === null || onAgentSelected === void 0 || onAgentSelected(agent);
134
- }
135
127
  }, 100);
136
- }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient, onAgentSelected]);
128
+ }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient]);
137
129
  var handleExpandModal = function handleExpandModal() {
138
130
  if (!isExpanded) {
139
131
  amplitudEvent(EVENTS.aiChatOpenAgentSelect);
@@ -275,4 +267,4 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
275
267
  })]
276
268
  });
277
269
  };
278
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwidXNlVHJhbnNsYXRpb24iLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VSZXNpemVMaXN0ZW5lciIsIkV4cGFuZCIsIkljb25CdXR0b24iLCJNQUlBSWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIkVWRU5UUyIsInVzZUV2ZW50IiwiQ09SVXNlclJvbGUiLCJ1c2VVc2VyIiwiQ2hpcExsbSIsIkxvYWRlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNoYXRBSU1vZGFsSGVhZGVyIiwiX3JlZiIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJfcmVmJGhhbmRsZUNsb3NlIiwiaGFuZGxlQ2xvc2UiLCJfcmVmJGFnZW50cyIsImFnZW50cyIsIl9yZWYkaGFzRXJyb3IiLCJoYXNFcnJvciIsIl9yZWYkbG9hZGluZyIsImxvYWRpbmciLCJfcmVmJGxvYWRpbmdNb3JlIiwibG9hZGluZ01vcmUiLCJfcmVmJGhhc01vcmUiLCJoYXNNb3JlIiwiaGFuZGxlUmVzZXRDaGF0Iiwib25BZ2VudFVwZGF0ZSIsImxvYWRNb3JlQWdlbnRzIiwic29ydEFnZW50c0xpc3QiLCJfcmVmJGhpZGVBZ2VudFNlbGVjdG8iLCJoaWRlQWdlbnRTZWxlY3RvciIsIm9uQWdlbnRTZWxlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwidCIsInVzZXIiLCJhbXBsaXR1ZEV2ZW50IiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RlZEFnZW50IiwiYWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc0V4cGFuZGVkIiwic2V0SXNFeHBhbmRlZCIsInRleHRSZWZBZ2VudCIsImRyb3Bkb3duUmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwibmFtZSIsInNob3dUb29sdGlwQWdlbnQiLCJzaG93VG9vbHRpcCIsImFnZW50c1JlZiIsImFnZW50c0ZvclNlbGVjdG9yIiwiZmlsdGVyIiwiYWdlbnRJdGVtIiwiZW50aXR5IiwidW5kZWZpbmVkIiwiaGFuZGxlU2Nyb2xsIiwiY3VycmVudCIsIl9hZ2VudHNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJzY3JvbGxFbGVtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImNsZWFyVGltZW91dCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2NhbEFnZW50cyIsIl9yZWYyIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwiZnJvbUxpc3QiLCJmaW5kIiwiaWQiLCJoYW5kbGVTZWxlY3RBZ2VudCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWdlbnRfdHlwZSIsInR5cGUiLCJuZWVkc0VudGl0eSIsImhhbmRsZUV4cGFuZE1vZGFsIiwiYWlDaGF0T3BlbkFnZW50U2VsZWN0IiwicHJldiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImV2ZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb2N1bWVudCIsInVzZXJSb2xlc0Rpc2FibGVkIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsInJlbmRlck1vZGFsIiwicmVmIiwib25DbGljayIsImxlbmd0aCIsImNoaWxkcmVuIiwidGl0bGUiLCJzdHlsZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiZ2FwIiwiZW1vamkiLCJwbGFjZW1lbnQiLCJpc0FnZW50RGVsZXRlZCIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJpbmNsdWRlcyIsInJvbGVfaWQiLCJjbG9uZUFnZW50cyIsImFnIiwiaXNDbG9uZSIsIm1hcCIsImNsb25lQWdlbnQiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJpc01haWEiLCJvbkZhdm9yaXRlVG9nZ2xlIiwiY29uY2F0Iiwic29tZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjb21wYW55IiwiYWdlbnRzQ291bnQiLCJzaXplIiwic2VsZWN0ZWRNb2RlbExsbSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNlbGVjdGVkQWdlbnRUeXBlIiwic2hvdWxkUmVuZGVyU2VsZWN0b3IiLCIkaGFzRXJyb3IiLCIkbG9hZGluZyIsIiRoYXNBZ2VudHMiLCJtb2RlbCIsImhhbmRsZUNsaWNrIiwidG9vbHRpcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgRXhwYW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXRvbXMvRXhwYW5kJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0ljb25CdXR0b24nXG5pbXBvcnQgeyBNQUlBSWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgQ2hhdEFJQWdlbnRPcHRpb24gfSBmcm9tICcuLi9DaGF0QWlBZ2VudE9wdGlvbnMvQ2hhdEFpQWdlbnRPcHRpb25zJ1xuaW1wb3J0IHtcbiAgU0NDQUlNSE1vZGFsLFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0LFxuICBTQ0NBSU1IV3JhcHBlcixcbiAgU0NDQUlNSFdyYXBwZXJCdXR0b24sXG4gIFNDQ0FJTUhXcmFwcGVySWNvbixcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbCxcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDT1JVc2VyUm9sZSwgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNb2RhbEhlYWRlciA9ICh7XG4gIGV4cGFuZGVkLFxuICBzZXRFeHBhbmRlZCxcbiAgaGFuZGxlQ2xvc2UgPSAoKSA9PiBudWxsLFxuICBhZ2VudHMgPSBbXSxcbiAgaGFzRXJyb3IgPSBmYWxzZSxcbiAgbG9hZGluZyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZSA9IGZhbHNlLFxuICBoYXNNb3JlID0gZmFsc2UsXG4gIGhhbmRsZVJlc2V0Q2hhdCxcbiAgb25BZ2VudFVwZGF0ZSxcbiAgbG9hZE1vcmVBZ2VudHMsXG4gIHNvcnRBZ2VudHNMaXN0LFxuICBoaWRlQWdlbnRTZWxlY3RvciA9IGZhbHNlLFxuICBvbkFnZW50U2VsZWN0ZWQsXG59OiB7XG4gIGV4cGFuZGVkOiBib29sZWFuXG4gIHNldEV4cGFuZGVkOiAoZXhwYW5kZWQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBoYXNFcnJvcjogYm9vbGVhblxuICBsb2FkaW5nOiBib29sZWFuXG4gIGxvYWRpbmdNb3JlPzogYm9vbGVhblxuICBoYXNNb3JlPzogYm9vbGVhblxuICBoYW5kbGVSZXNldENoYXQ6ICgpID0+IHZvaWRcbiAgb25BZ2VudFVwZGF0ZT86ICh1cGRhdGVkQWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBzb3J0QWdlbnRzTGlzdD86ICgpID0+IHZvaWRcbiAgaGlkZUFnZW50U2VsZWN0b3I/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZSBpbnZvY2EgZGVzcHXDqXMgZGVsIHJlc2V0IGN1YW5kbyBlbCBhZ2VudGUgc2VsZWNjaW9uYWRvIE5PIHJlcXVpZXJlIHNlbGVjY2nDs25cbiAgICogZGUgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpLiBQZXJtaXRlIHJlc29sdmVyIGBHRVQgL3YyL3Nlc3Npb25zL2FnZW50L3tpZH1gXG4gICAqIHkgbmF2ZWdhciBhIHVuYSBjb252ZXJzYWNpw7NuIGV4aXN0ZW50ZSBzaSBsYSBoYXkuXG4gICAqL1xuICBvbkFnZW50U2VsZWN0ZWQ/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkIHwgUHJvbWlzZTx1bmtub3duPlxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgYW1wbGl0dWRFdmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhZ2VudDogc2VsZWN0ZWRBZ2VudCwgc2VsZWN0QWdlbnQsIHNldFByb2plY3QsIHNldENsaWVudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0ZXh0UmVmQWdlbnQgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZkFnZW50LCBbc2VsZWN0ZWRBZ2VudD8ubmFtZV0pXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBhZ2VudHNGb3JTZWxlY3RvciA9IHVzZU1lbW8oKCkgPT4gYWdlbnRzLmZpbHRlcihhZ2VudEl0ZW0gPT4gYWdlbnRJdGVtLmVudGl0eSAhPT0gJ2dsb2JhbCcpLCBbYWdlbnRzXSlcblxuICAvLyBNYW5lamFyIHNjcm9sbCBpbmZpbml0byBwYXJhIGNhcmdhciBtw6FzIGFnZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNvbG8gY3VhbmRvIGVsIGRyb3Bkb3duIGVzdMOpIGFiaWVydG9cbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWFnZW50c1JlZi5jdXJyZW50IHx8ICFsb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZSB8fCBsb2FkaW5nTW9yZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG5cbiAgICAgIC8vIENhcmdhciBtw6FzICg1MHB4IGFudGVzKVxuICAgICAgaWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgcmVuZGVyaXphZG9cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfSwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxvYWRNb3JlQWdlbnRzLCBoYXNNb3JlLCBsb2FkaW5nTW9yZV0pXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEFnZW50XG4gICAgfVxuICAgIGNvbnN0IGZyb21MaXN0ID0gYWdlbnRzLmZpbmQoXG4gICAgICBhZ2VudCA9PlxuICAgICAgICAhYWdlbnQuaXNfZGVsZXRlZCAmJiAhYWdlbnQuaGFzX25vdF9wZXJtaXNzaW9ucyAmJiAhYWdlbnQuaGFzX25vdF9hY2Nlc3MgJiYgYWdlbnQuaWQgPT09IHNlbGVjdGVkQWdlbnQ/LmlkXG4gICAgKVxuICAgIC8vIEFnZW50ZSBoaWRyYXRhZG8gcG9yIEdFVCAocC4gZWouIG51ZXZvIGNoYXQgdHJhcyBjcmVhdGVfYWdlbnQpIHB1ZWRlIG5vIGVzdGFyIGHDum4gZW4gbGEgbGlzdGEgcGFnaW5hZGFcbiAgICByZXR1cm4gZnJvbUxpc3QgPz8gc2VsZWN0ZWRBZ2VudCA/PyBudWxsXG4gIH0sIFthZ2VudHMsIHNlbGVjdGVkQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRBZ2VudFNlbGVjdCwge1xuICAgICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZGVwZW5kZSBkZSB1bmEgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpIHlhIHBvZGVtb3NcbiAgICAgICAgLy8gcmVzb2x2ZXIgc2kgZXhpc3RlIHVuYSBzZXNpw7NuIHByZXZpYSB5LCBlbiBlc2UgY2FzbywgbmF2ZWdhciBhIGVsbGEuXG4gICAgICAgIC8vIFBhcmEgY2xvbmUrcHJvamVjdHxjbGllbnQsIGxhIHJlc29sdWNpw7NuIG9jdXJyZSBlbiBsb3Mgc2VsZWN0b3JzIGRlIGVudGl0eS5cbiAgICAgICAgY29uc3QgbmVlZHNFbnRpdHkgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuICAgICAgICBpZiAoIW5lZWRzRW50aXR5KSB7XG4gICAgICAgICAgb25BZ2VudFNlbGVjdGVkPy4oYWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH0sIDEwMClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgYW1wbGl0dWRFdmVudCwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIG9uQWdlbnRTZWxlY3RlZF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuZE1vZGFsID0gKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlbkFnZW50U2VsZWN0KVxuICAgICAgLy8gQ3VhbmRvIHNlIGFicmUgZWwgc2VsZWN0b3IsIG9yZGVuYXIgbG9zIGFnZW50ZXNcbiAgICAgIGlmIChzb3J0QWdlbnRzTGlzdCkge1xuICAgICAgICBzb3J0QWdlbnRzTGlzdCgpXG4gICAgICB9XG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoZHJvcGRvd25SZWYuY3VycmVudCAmJiAhZHJvcGRvd25SZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNFeHBhbmRlZCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZF0pXG5cbiAgY29uc3QgdXNlclJvbGVzRGlzYWJsZWQgPSBbQ09SVXNlclJvbGUuQ09MTEFCT1JBVE9SLCBDT1JVc2VyUm9sZS5GUkVFTEFOQ0VSLCBDT1JVc2VyUm9sZS5DTElFTlRdXG5cbiAgY29uc3QgcmVuZGVyTW9kYWwgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSU1IV3JhcHBlclxuICAgICAgICByZWY9e2Ryb3Bkb3duUmVmfVxuICAgICAgICBvbkNsaWNrPXthZ2VudHMubGVuZ3RoID8gaGFuZGxlRXhwYW5kTW9kYWwgOiB1bmRlZmluZWR9XG4gICAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICA+XG4gICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcEFnZW50ID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD17aXNFeHBhbmRlZCA/ICdsZWZ0JyA6ICd0b3AnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHRcbiAgICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICAgIGlzQWdlbnREZWxldGVkPXtcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHwgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8udHlwZSA9PT0gJ2N1c3RvbScgPyBsb2NhbEFnZW50cz8uZW1vamkgOiA8TUFJQUljb24gLz59IHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD17MTR9IGhlaWdodD17MTR9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgIDwvU0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICF1c2VyUm9sZXNEaXNhYmxlZC5pbmNsdWRlcyh1c2VyLnJvbGVfaWQpICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzRm9yU2VsZWN0b3IuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2xvbmVBZ2VudHMubGVuZ3RoKSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TUFJQUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUgaXNDbG9uZT5NQUlBIGJ5IENPUjwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NDQUlXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9uZUFnZW50cy5tYXAoKGNsb25lQWdlbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7Y2xvbmVBZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXtjbG9uZUFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RBZ2VudD17aGFuZGxlU2VsZWN0QWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRBZ2VudD8uaWQgPT09IGNsb25lQWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNYWlhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7YWdlbnRzRm9yU2VsZWN0b3Iuc29tZShhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJykgJiZcbiAgICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnYWdlbnRzJyl9IGJ5IHt1c2VyLmNvbXBhbnl9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8U0NDQUlNSEFnZW50c0xpc3QgaGFzTW9yZT17aGFzTW9yZX0gYWdlbnRzQ291bnQ9e2FnZW50c0ZvclNlbGVjdG9yLmxlbmd0aH0gcmVmPXthZ2VudHNSZWZ9PlxuICAgICAgICAgICAgICAgIHthZ2VudHNGb3JTZWxlY3Rvcj8ubWFwKChhZ2VudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8XG4gICAgICAgICAgICAgICAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHthZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBhZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldElzRXhwYW5kZWQ9e3NldElzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAge2xvYWRpbmdNb3JlICYmIChcbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhBZ2VudHNMaXN0PlxuICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTW9kZWxMbG0gPSBzZWxlY3RlZEFnZW50Py5tb2RlbF9kaXNwbGF5X25hbWVcbiAgY29uc3Qgc2VsZWN0ZWRBZ2VudFR5cGUgPSBzZWxlY3RlZEFnZW50Py50eXBlID09PSAnY3VzdG9tJ1xuICBjb25zdCBzaG91bGRSZW5kZXJTZWxlY3RvciA9XG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmcgJiZcbiAgICAhaGlkZUFnZW50U2VsZWN0b3IgJiZcbiAgICAhIXNlbGVjdGVkQWdlbnQgJiZcbiAgICAoISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlNSE1vZGFsICRoYXNFcnJvcj17aGFzRXJyb3J9ICRsb2FkaW5nPXtsb2FkaW5nfSAkaGFzQWdlbnRzPXshIWFnZW50cy5sZW5ndGh9PlxuICAgICAge3Nob3VsZFJlbmRlclNlbGVjdG9yID8gcmVuZGVyTW9kYWwoKSA6IDxkaXYgLz59XG4gICAgICA8U0NDQUlNSFdyYXBwZXJCdXR0b24+XG4gICAgICAgIHtzZWxlY3RlZEFnZW50VHlwZSAmJiBzZWxlY3RlZE1vZGVsTGxtICYmIDxDaGlwTGxtIG1vZGVsPXtzZWxlY3RlZE1vZGVsTGxtfSBleHBhbmRlZD17ZXhwYW5kZWR9IC8+fVxuICAgICAgICA8RXhwYW5kIGV4cGFuZGVkPXtleHBhbmRlZH0gaGFuZGxlQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKCFleHBhbmRlZCl9IC8+XG4gICAgICAgIDxJY29uQnV0dG9uIGhhbmRsZUNsaWNrPXtoYW5kbGVDbG9zZX0gdG9vbHRpcD17dCgnZ2xvYmFscy5jbG9zZScpfT5cbiAgICAgICAgICA8Q3Jvc3MgLz5cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9TQ0NBSU1IV3JhcHBlckJ1dHRvbj5cbiAgICA8L1NDQ0FJTUhNb2RhbD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLGlDQUFpQztBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSx1Q0FBdUM7QUFDeEUsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLFNBQVNDLE1BQU0sUUFBUSwwQkFBMEI7QUFDakQsU0FBU0MsVUFBVSxRQUFRLDhCQUE4QjtBQUN6RCxTQUFTQyxRQUFRLFFBQVEseUJBQXlCO0FBQ2xELFNBQVNDLGlCQUFpQixRQUFRLDBDQUEwQztBQUM1RSxTQUNFQyxZQUFZLEVBQ1pDLG9CQUFvQixFQUNwQkMsd0JBQXdCLEVBQ3hCQyxjQUFjLEVBQ2RDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLDBCQUEwQixFQUMxQkMsK0JBQStCLEVBQy9CQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNq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
270
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwidXNlVHJhbnNsYXRpb24iLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VSZXNpemVMaXN0ZW5lciIsIkV4cGFuZCIsIkljb25CdXR0b24iLCJNQUlBSWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIkVWRU5UUyIsInVzZUV2ZW50IiwiQ09SVXNlclJvbGUiLCJ1c2VVc2VyIiwiQ2hpcExsbSIsIkxvYWRlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNoYXRBSU1vZGFsSGVhZGVyIiwiX3JlZiIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJfcmVmJGhhbmRsZUNsb3NlIiwiaGFuZGxlQ2xvc2UiLCJfcmVmJGFnZW50cyIsImFnZW50cyIsIl9yZWYkaGFzRXJyb3IiLCJoYXNFcnJvciIsIl9yZWYkbG9hZGluZyIsImxvYWRpbmciLCJfcmVmJGxvYWRpbmdNb3JlIiwibG9hZGluZ01vcmUiLCJfcmVmJGhhc01vcmUiLCJoYXNNb3JlIiwiaGFuZGxlUmVzZXRDaGF0Iiwib25BZ2VudFVwZGF0ZSIsImxvYWRNb3JlQWdlbnRzIiwic29ydEFnZW50c0xpc3QiLCJfcmVmJGhpZGVBZ2VudFNlbGVjdG8iLCJoaWRlQWdlbnRTZWxlY3RvciIsIl91c2VUcmFuc2xhdGlvbiIsImFibUFnZW50IiwidCIsInVzZXIiLCJhbXBsaXR1ZEV2ZW50IiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RlZEFnZW50IiwiYWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc0V4cGFuZGVkIiwic2V0SXNFeHBhbmRlZCIsInRleHRSZWZBZ2VudCIsImRyb3Bkb3duUmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwibmFtZSIsInNob3dUb29sdGlwQWdlbnQiLCJzaG93VG9vbHRpcCIsImFnZW50c1JlZiIsImFnZW50c0ZvclNlbGVjdG9yIiwiZmlsdGVyIiwiYWdlbnRJdGVtIiwiZW50aXR5IiwidW5kZWZpbmVkIiwiaGFuZGxlU2Nyb2xsIiwiY3VycmVudCIsIl9hZ2VudHNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJzY3JvbGxFbGVtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImNsZWFyVGltZW91dCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2NhbEFnZW50cyIsIl9yZWYyIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwiZnJvbUxpc3QiLCJmaW5kIiwiaWQiLCJoYW5kbGVTZWxlY3RBZ2VudCIsImFpQ2hhdEFnZW50U2VsZWN0IiwiYWdlbnRfdHlwZSIsInR5cGUiLCJoYW5kbGVFeHBhbmRNb2RhbCIsImFpQ2hhdE9wZW5BZ2VudFNlbGVjdCIsInByZXYiLCJoYW5kbGVDbGlja091dHNpZGUiLCJldmVudCIsImNvbnRhaW5zIiwidGFyZ2V0IiwiZG9jdW1lbnQiLCJ1c2VyUm9sZXNEaXNhYmxlZCIsIkNPTExBQk9SQVRPUiIsIkZSRUVMQU5DRVIiLCJDTElFTlQiLCJyZW5kZXJNb2RhbCIsInJlZiIsIm9uQ2xpY2siLCJsZW5ndGgiLCJjaGlsZHJlbiIsInRpdGxlIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImdhcCIsImVtb2ppIiwicGxhY2VtZW50IiwiaXNBZ2VudERlbGV0ZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwiaW5jbHVkZXMiLCJyb2xlX2lkIiwiY2xvbmVBZ2VudHMiLCJhZyIsImlzQ2xvbmUiLCJtYXAiLCJjbG9uZUFnZW50IiwiaW5kZXgiLCJpc1NlbGVjdGVkIiwiaXNNYWlhIiwib25GYXZvcml0ZVRvZ2dsZSIsImNvbmNhdCIsInNvbWUiLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiY29tcGFueSIsImFnZW50c0NvdW50Iiwic2l6ZSIsInNlbGVjdGVkTW9kZWxMbG0iLCJtb2RlbF9kaXNwbGF5X25hbWUiLCJzZWxlY3RlZEFnZW50VHlwZSIsInNob3VsZFJlbmRlclNlbGVjdG9yIiwiJGhhc0Vycm9yIiwiJGxvYWRpbmciLCIkaGFzQWdlbnRzIiwibW9kZWwiLCJoYW5kbGVDbGljayIsInRvb2x0aXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTW9kYWwvY29tcG9uZW50cy9DaGF0QWlNb2RhbEhlYWRlci9DaGF0QWlNb2RhbEhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IEV4cGFuZCB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0V4cGFuZCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9JY29uQnV0dG9uJ1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IENoYXRBSUFnZW50T3B0aW9uIH0gZnJvbSAnLi4vQ2hhdEFpQWdlbnRPcHRpb25zL0NoYXRBaUFnZW50T3B0aW9ucydcbmltcG9ydCB7XG4gIFNDQ0FJTUhNb2RhbCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnQsXG4gIFNDQ0FJTUhTZWxlY3RlZEFnZW50VGV4dCxcbiAgU0NDQUlNSFdyYXBwZXIsXG4gIFNDQ0FJTUhXcmFwcGVyQnV0dG9uLFxuICBTQ0NBSU1IV3JhcHBlckljb24sXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWwsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50LFxuICBTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlLFxuICBTQ0NBSU1IRGl2aWRlcixcbiAgU0NDQUlNSEFnZW50c0xpc3QsXG4gIFNDQ0FJTUhMb2FkZXJXcmFwcGVyLFxuICBTQ0NBSVdyYXBwZXIsXG59IGZyb20gJy4vQ2hhdEFpTW9kYWxIZWFkZXIuc3R5bGVzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ09SVXNlclJvbGUsIHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENoaXBMbG0gfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9DaGlwTGxtJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXRvbXMvTG9hZGVyJ1xuXG5leHBvcnQgY29uc3QgQ2hhdEFJTW9kYWxIZWFkZXIgPSAoe1xuICBleHBhbmRlZCxcbiAgc2V0RXhwYW5kZWQsXG4gIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgYWdlbnRzID0gW10sXG4gIGhhc0Vycm9yID0gZmFsc2UsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmUgPSBmYWxzZSxcbiAgaGFzTW9yZSA9IGZhbHNlLFxuICBoYW5kbGVSZXNldENoYXQsXG4gIG9uQWdlbnRVcGRhdGUsXG4gIGxvYWRNb3JlQWdlbnRzLFxuICBzb3J0QWdlbnRzTGlzdCxcbiAgaGlkZUFnZW50U2VsZWN0b3IgPSBmYWxzZSxcbn06IHtcbiAgZXhwYW5kZWQ6IGJvb2xlYW5cbiAgc2V0RXhwYW5kZWQ6IChleHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZFxuICBoYW5kbGVDbG9zZT86ICgpID0+IHZvaWRcbiAgYWdlbnRzOiBBZ2VudFtdXG4gIGhhc0Vycm9yOiBib29sZWFuXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgbG9hZGluZ01vcmU/OiBib29sZWFuXG4gIGhhc01vcmU/OiBib29sZWFuXG4gIGhhbmRsZVJlc2V0Q2hhdDogKCkgPT4gdm9pZFxuICBvbkFnZW50VXBkYXRlPzogKHVwZGF0ZWRBZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgbG9hZE1vcmVBZ2VudHM/OiAoKSA9PiB2b2lkXG4gIHNvcnRBZ2VudHNMaXN0PzogKCkgPT4gdm9pZFxuICBoaWRlQWdlbnRTZWxlY3Rvcj86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdGV4dFJlZkFnZW50ID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3QgZHJvcGRvd25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWZBZ2VudCwgW3NlbGVjdGVkQWdlbnQ/Lm5hbWVdKVxuICBjb25zdCBhZ2VudHNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgY29uc3QgYWdlbnRzRm9yU2VsZWN0b3IgPSB1c2VNZW1vKCgpID0+IGFnZW50cy5maWx0ZXIoYWdlbnRJdGVtID0+IGFnZW50SXRlbS5lbnRpdHkgIT09ICdnbG9iYWwnKSwgW2FnZW50c10pXG5cbiAgLy8gTWFuZWphciBzY3JvbGwgaW5maW5pdG8gcGFyYSBjYXJnYXIgbcOhcyBhZ2VudHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTb2xvIGN1YW5kbyBlbCBkcm9wZG93biBlc3TDqSBhYmllcnRvXG4gICAgaWYgKCFpc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFhZ2VudHNSZWYuY3VycmVudCB8fCAhbG9hZE1vcmVBZ2VudHMgfHwgIWhhc01vcmUgfHwgbG9hZGluZ01vcmUpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuXG4gICAgICAvLyBDYXJnYXIgbcOhcyAoNTBweCBhbnRlcylcbiAgICAgIGlmIChkaXN0YW5jZUZyb21Cb3R0b20gPCA1MCkge1xuICAgICAgICBsb2FkTW9yZUFnZW50cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGVsYXkgcGFyYSBhc2VndXJhciBxdWUgZWwgRE9NIGVzdMOpIHJlbmRlcml6YWRvXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH0sIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGFnZW50c1JlZi5jdXJyZW50XG4gICAgICBpZiAoc2Nyb2xsRWxlbWVudCkge1xuICAgICAgICBzY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkLCBsb2FkTW9yZUFnZW50cywgaGFzTW9yZSwgbG9hZGluZ01vcmVdKVxuXG4gIGNvbnN0IGxvY2FsQWdlbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MgfHxcbiAgICAgIHNlbGVjdGVkQWdlbnQ/LmlzX2Zyb21fY29udmVyc2F0aW9uXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRBZ2VudFxuICAgIH1cbiAgICBjb25zdCBmcm9tTGlzdCA9IGFnZW50cy5maW5kKFxuICAgICAgYWdlbnQgPT5cbiAgICAgICAgIWFnZW50LmlzX2RlbGV0ZWQgJiYgIWFnZW50Lmhhc19ub3RfcGVybWlzc2lvbnMgJiYgIWFnZW50Lmhhc19ub3RfYWNjZXNzICYmIGFnZW50LmlkID09PSBzZWxlY3RlZEFnZW50Py5pZFxuICAgIClcbiAgICAvLyBBZ2VudGUgaGlkcmF0YWRvIHBvciBHRVQgKHAuIGVqLiBudWV2byBjaGF0IHRyYXMgY3JlYXRlX2FnZW50KSBwdWVkZSBubyBlc3RhciBhw7puIGVuIGxhIGxpc3RhIHBhZ2luYWRhXG4gICAgcmV0dXJuIGZyb21MaXN0ID8/IHNlbGVjdGVkQWdlbnQgPz8gbnVsbFxuICB9LCBbYWdlbnRzLCBzZWxlY3RlZEFnZW50XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RBZ2VudCA9IHVzZUNhbGxiYWNrKFxuICAgIChhZ2VudDogQWdlbnQpID0+IHtcbiAgICAgIHNlbGVjdEFnZW50KGFnZW50KVxuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QWdlbnRTZWxlY3QsIHtcbiAgICAgICAgYWdlbnRfdHlwZTogYWdlbnQ/LnR5cGUsXG4gICAgICB9KVxuICAgICAgc2V0SXNFeHBhbmRlZChmYWxzZSlcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaGFuZGxlUmVzZXRDaGF0KClcbiAgICAgIH0sIDEwMClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgYW1wbGl0dWRFdmVudCwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnRdXG4gIClcblxuICBjb25zdCBoYW5kbGVFeHBhbmRNb2RhbCA9ICgpID0+IHtcbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLmFpQ2hhdE9wZW5BZ2VudFNlbGVjdClcbiAgICAgIC8vIEN1YW5kbyBzZSBhYnJlIGVsIHNlbGVjdG9yLCBvcmRlbmFyIGxvcyBhZ2VudGVzXG4gICAgICBpZiAoc29ydEFnZW50c0xpc3QpIHtcbiAgICAgICAgc29ydEFnZW50c0xpc3QoKVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRJc0V4cGFuZGVkKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGRyb3Bkb3duUmVmLmN1cnJlbnQgJiYgIWRyb3Bkb3duUmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldElzRXhwYW5kZWQoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWRdKVxuXG4gIGNvbnN0IHVzZXJSb2xlc0Rpc2FibGVkID0gW0NPUlVzZXJSb2xlLkNPTExBQk9SQVRPUiwgQ09SVXNlclJvbGUuRlJFRUxBTkNFUiwgQ09SVXNlclJvbGUuQ0xJRU5UXVxuXG4gIGNvbnN0IHJlbmRlck1vZGFsID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlNSFdyYXBwZXJcbiAgICAgICAgcmVmPXtkcm9wZG93blJlZn1cbiAgICAgICAgb25DbGljaz17YWdlbnRzLmxlbmd0aCA/IGhhbmRsZUV4cGFuZE1vZGFsIDogdW5kZWZpbmVkfVxuICAgICAgICBpZD1cImNoYXQtYWktbW9kYWwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgPlxuICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnQ+XG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBBZ2VudCA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgICAge2xvY2FsQWdlbnRzPy50eXBlID09PSAnY3VzdG9tJyA/IGxvY2FsQWdlbnRzPy5lbW9qaSA6IDxNQUlBSWNvbiAvPn0ge2xvY2FsQWdlbnRzPy5uYW1lfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwbGFjZW1lbnQ9e2lzRXhwYW5kZWQgPyAnbGVmdCcgOiAndG9wJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0XG4gICAgICAgICAgICAgIHJlZj17dGV4dFJlZkFnZW50fVxuICAgICAgICAgICAgICBpc0FnZW50RGVsZXRlZD17XG4gICAgICAgICAgICAgICAgISFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyB8fCAhIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnNHB4JyB9fT5cbiAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgPFNDQ0FJTUhXcmFwcGVySWNvbj5cbiAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICA8L1NDQ0FJTUhXcmFwcGVySWNvbj5cbiAgICAgICAge2lzRXhwYW5kZWQgJiYgKFxuICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50PlxuICAgICAgICAgICAgICB7d2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTUyAmJiAhdXNlclJvbGVzRGlzYWJsZWQuaW5jbHVkZXModXNlci5yb2xlX2lkKSAmJiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbG9uZUFnZW50cyA9IGFnZW50c0ZvclNlbGVjdG9yLmZpbHRlcigoYWc6IEFnZW50KSA9PiBhZy50eXBlID09PSAnY2xvbmUnKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNsb25lQWdlbnRzLmxlbmd0aCkgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1BSUFJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlIGlzQ2xvbmU+TUFJQSBieSBDT1I8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQ0FJV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IRGl2aWRlciAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xvbmVBZ2VudHMubWFwKChjbG9uZUFnZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hhdEFJQWdlbnRPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BhZ2VudC0ke2Nsb25lQWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17Y2xvbmVBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBjbG9uZUFnZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWFpYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRmF2b3JpdGVUb2dnbGU9e29uQWdlbnRVcGRhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2FnZW50c0ZvclNlbGVjdG9yLnNvbWUoYWdlbnQgPT4gYWdlbnQudHlwZSA9PT0gJ2N1c3RvbScpICYmXG4gICAgICAgICAgICAgICAgd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2FnZW50cycpfSBieSB7dXNlci5jb21wYW55fVxuICAgICAgICAgICAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0NBSU1IRGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPFNDQ0FJTUhBZ2VudHNMaXN0IGhhc01vcmU9e2hhc01vcmV9IGFnZW50c0NvdW50PXthZ2VudHNGb3JTZWxlY3Rvci5sZW5ndGh9IHJlZj17YWdlbnRzUmVmfT5cbiAgICAgICAgICAgICAgICB7YWdlbnRzRm9yU2VsZWN0b3I/Lm1hcCgoYWdlbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgICAgICAgICAgICAgICBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyB8fFxuICAgICAgICAgICAgICAgICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nICYmICF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUylcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7YWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEFnZW50PXtoYW5kbGVTZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gYWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc0V4cGFuZGVkPXtzZXRJc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIHtsb2FkaW5nTW9yZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1IQWdlbnRzTGlzdD5cbiAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSU1IV3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBjb25zdCBzZWxlY3RlZE1vZGVsTGxtID0gc2VsZWN0ZWRBZ2VudD8ubW9kZWxfZGlzcGxheV9uYW1lXG4gIGNvbnN0IHNlbGVjdGVkQWdlbnRUeXBlID0gc2VsZWN0ZWRBZ2VudD8udHlwZSA9PT0gJ2N1c3RvbSdcbiAgY29uc3Qgc2hvdWxkUmVuZGVyU2VsZWN0b3IgPVxuICAgICFoYXNFcnJvciAmJlxuICAgICFsb2FkaW5nICYmXG4gICAgIWhpZGVBZ2VudFNlbGVjdG9yICYmXG4gICAgISFzZWxlY3RlZEFnZW50ICYmXG4gICAgKCEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJTUhNb2RhbCAkaGFzRXJyb3I9e2hhc0Vycm9yfSAkbG9hZGluZz17bG9hZGluZ30gJGhhc0FnZW50cz17ISFhZ2VudHMubGVuZ3RofT5cbiAgICAgIHtzaG91bGRSZW5kZXJTZWxlY3RvciA/IHJlbmRlck1vZGFsKCkgOiA8ZGl2IC8+fVxuICAgICAgPFNDQ0FJTUhXcmFwcGVyQnV0dG9uPlxuICAgICAgICB7c2VsZWN0ZWRBZ2VudFR5cGUgJiYgc2VsZWN0ZWRNb2RlbExsbSAmJiA8Q2hpcExsbSBtb2RlbD17c2VsZWN0ZWRNb2RlbExsbX0gZXhwYW5kZWQ9e2V4cGFuZGVkfSAvPn1cbiAgICAgICAgPEV4cGFuZCBleHBhbmRlZD17ZXhwYW5kZWR9IGhhbmRsZUNsaWNrPXsoKSA9PiBzZXRFeHBhbmRlZCghZXhwYW5kZWQpfSAvPlxuICAgICAgICA8SWNvbkJ1dHRvbiBoYW5kbGVDbGljaz17aGFuZGxlQ2xvc2V9IHRvb2x0aXA9e3QoJ2dsb2JhbHMuY2xvc2UnKX0+XG4gICAgICAgICAgPENyb3NzIC8+XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDwvU0NDQUlNSFdyYXBwZXJCdXR0b24+XG4gICAgPC9TQ0NBSU1ITW9kYWw+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxTQUFTQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pELFNBQVNDLFVBQVUsUUFBUSw4QkFBOEI7QUFDekQsU0FBU0MsUUFBUSxRQUFRLHlCQUF5QjtBQUNsRCxTQUFTQyxpQkFBaUIsUUFBUSwwQ0FBMEM7QUFDNUUsU0FDRUMsWUFBWSxFQUNaQyxvQkFBb0IsRUFDcEJDLHdCQUF3QixFQUN4QkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLGtCQUFr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
@@ -6,6 +6,7 @@ import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
6
6
  import { Star } from '@projectcor/icons/lib/components/Star';
7
7
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
8
8
  import { useTranslation } from 'react-i18next';
9
+ import { useGlobalContext } from '../../../context/global-context';
9
10
  import { useUser } from '../../../context/cor-user';
10
11
  import { deleteAgent } from '../../../services/maia/Agents/deleteAgent';
11
12
  import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
@@ -32,6 +33,10 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
32
33
  var _useTranslation = useTranslation([SECTIONS.chatAI, SECTIONS.abmAgent]),
33
34
  t = _useTranslation.t;
34
35
  var user = useUser();
36
+ var _useGlobalContext = useGlobalContext(),
37
+ selectAgent = _useGlobalContext.selectAgent,
38
+ setProject = _useGlobalContext.setProject,
39
+ setClient = _useGlobalContext.setClient;
35
40
  var _useSnackBarManager = useSnackBarManager(),
36
41
  handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
37
42
  handleSnackbarError = _useSnackBarManager.handleSnackbarError;
@@ -90,15 +95,9 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
90
95
  } : null;
91
96
  }, [agentToDelete]);
92
97
  var handleUseAgent = function handleUseAgent(agent) {
93
- // Delegamos en el listener `maia-open-new-chat-with-agent` del ChatAIModal,
94
- // que además de setProject/setClient/selectAgent ejecuta la resolución
95
- // `GET /v2/sessions/agent/{agent_id}` para navegar a la conversación existente
96
- // si el usuario ya tiene una con ese agente.
97
- document.dispatchEvent(new CustomEvent('maia-open-new-chat-with-agent', {
98
- detail: {
99
- agent: agent
100
- }
101
- }));
98
+ setProject(null);
99
+ setClient === null || setClient === void 0 || setClient(null);
100
+ selectAgent(agent);
102
101
  onBack();
103
102
  };
104
103
  var normalizeText = function normalizeText(value) {
@@ -358,4 +357,4 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
358
357
  }) : null]
359
358
  });
360
359
  };
361
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlVXNlciIsImRlbGV0ZUFnZW50IiwidXNlU25hY2tCYXJNYW5hZ2VyIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIlNFQ1RJT05TIiwiTG9hZGVyIiwidXNlVG9nZ2xlRmF2b3JpdGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIlNDTUFCb2R5IiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkSGVhZGVyIiwiU0NNQUNhcmRUb3BSb3ciLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFDYXJkTWVudSIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIlNDTUFGYXZvcml0ZVN0YXJXcmFwIiwiU0NNQUNhcmRGb290ZXJEYXRlIiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BQ2FyZHNPdXRlciIsIlNDTUFDYXJkc1JvdyIsIlNDTUFFbXB0eVN0YXRlUm9vdCIsIlNDTUFFbXB0eVN0YXRlQ29sdW1uIiwiU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNQUVtcHR5U3RhdGVUaXRsZSIsIlNDTUFFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01BRW1wdHlTdGF0ZUJ1dHRvbiIsIlNDTUFLZWJhYkJ1dHRvbiIsIlNDTUFMb2FkTW9yZVdyYXBwZXIiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJTQ01BVGl0bGUiLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZVdyYXAiLCJTQ01BQWN0aW9uc1JvdyIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b24iLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkNoYXRBSU15QWdlbnRzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25CYWNrIiwiYWdlbnRzIiwib25EZWxldGVBZ2VudCIsIm9uRmF2b3JpdGVBZ2VudFVwZGF0ZSIsIl9yZWYkaGFzTW9yZUFnZW50cyIsImhhc01vcmVBZ2VudHMiLCJfcmVmJGxvYWRpbmdNb3JlQWdlbnQiLCJsb2FkaW5nTW9yZUFnZW50cyIsIm9uTG9hZE1vcmVBZ2VudHMiLCJvbkdvVG9NYWlha2VyIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiYWJtQWdlbnQiLCJ0IiwidXNlciIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY3VzdG9tQWdlbnRzIiwiZmlsdGVyIiwiYWdlbnQiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1lbnVPcGVuRm9yQWdlbnRJZCIsInNldE1lbnVPcGVuRm9yQWdlbnRJZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWdlbnRUb0RlbGV0ZSIsInNldEFnZW50VG9EZWxldGUiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50IiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhbkVkaXQiLCJlZGl0IiwiY2FuRGVsZXRlIiwiY2FuU2hvd01lbnUiLCJfdXNlVG9nZ2xlRmF2b3JpdGUiLCJ0b2dnbGVGYXZvcml0ZSIsImV2ZW50QW1wbGl0dWRlIiwib3BlbkNyZWF0ZUFnZW50TW9kYWwiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwiaXNPcGVuIiwiaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24iLCJ1c2VNYXJrZXRwbGFjZU1haWFrZXIiLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIiRjYW5DcmVhdGVBZ2VudCIsIm9uQ2xpY2siLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgZGVsZXRlQWdlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9kZWxldGVBZ2VudCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IHVzZVRvZ2dsZUZhdm9yaXRlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQge1xuICBTQ01BQm9keSxcbiAgU0NNQUNhcmRCb2R5LFxuICBTQ01BQ2FyZEJ1dHRvbixcbiAgU0NNQUNhcmRGb290ZXIsXG4gIFNDTUFDYXJkSGVhZGVyLFxuICBTQ01BQ2FyZFRvcFJvdyxcbiAgU0NNQUNhcmRJbnRyb1RleHQsXG4gIFNDTUFDYXJkTWVudSxcbiAgU0NNQUNhcmRNZW51SXRlbSxcbiAgU0NNQUNhcmRNZW51SXRlbXMsXG4gIFNDTUFGYXZvcml0ZUJ1dHRvbixcbiAgU0NNQUZhdm9yaXRlU3RhcldyYXAsXG4gIFNDTUFDYXJkRm9vdGVyRGF0ZSxcbiAgU0NNQUNhcmRUaXRsZUVtb2ppLFxuICBTQ01BQ2FyZFRpdGxlTmFtZSxcbiAgU0NNQUNhcmRzT3V0ZXIsXG4gIFNDTUFDYXJkc1JvdyxcbiAgU0NNQUVtcHR5U3RhdGVSb290LFxuICBTQ01BRW1wdHlTdGF0ZUNvbHVtbixcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlLFxuICBTQ01BRW1wdHlTdGF0ZUJ1dHRvbixcbiAgU0NNQUtlYmFiQnV0dG9uLFxuICBTQ01BTG9hZE1vcmVXcmFwcGVyLFxuICBTQ01BTXlBZ2VudHNDb250YWluZXIsXG4gIFNDTUFUaXRsZSxcbiAgU0NNQVRpdGxlSW5uZXIsXG4gIFNDTUFUaXRsZVdyYXAsXG4gIFNDTUFBY3Rpb25zUm93LFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uLFxuICBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCxcbn0gZnJvbSAnLi9DaGF0QUlNeUFnZW50cy5zdHlsZXMnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuXG50eXBlIENoYXRBSU15QWdlbnRzUHJvcHMgPSB7XG4gIG9uQmFjazogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgb25EZWxldGVBZ2VudD86IChhZ2VudElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25GYXZvcml0ZUFnZW50VXBkYXRlPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBoYXNNb3JlQWdlbnRzPzogYm9vbGVhblxuICBsb2FkaW5nTW9yZUFnZW50cz86IGJvb2xlYW5cbiAgb25Mb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgb25Hb1RvTWFpYWtlcj86ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+XG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNeUFnZW50cyA9ICh7XG4gIG9uQmFjayxcbiAgYWdlbnRzLFxuICBvbkRlbGV0ZUFnZW50LFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGUsXG4gIGhhc01vcmVBZ2VudHMgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmVBZ2VudHMgPSBmYWxzZSxcbiAgb25Mb2FkTW9yZUFnZW50cyxcbiAgb25Hb1RvTWFpYWtlcixcbn06IENoYXRBSU15QWdlbnRzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJLCBTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IGN1c3RvbUFnZW50cyA9IGFnZW50cy5maWx0ZXIoYWdlbnQgPT4gYWdlbnQudHlwZSA9PT0gJ2N1c3RvbScgJiYgIWFnZW50LmlzX2RlbGV0ZWQpXG4gIGNvbnN0IFttZW51T3BlbkZvckFnZW50SWQsIHNldE1lbnVPcGVuRm9yQWdlbnRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWdlbnRUb0RlbGV0ZSwgc2V0QWdlbnRUb0RlbGV0ZV0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgY2FuQ3JlYXRlQWdlbnQgPSAhIXVzZXJQZXJtaXNzaW9ucz8uY3JlYXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuRWRpdCA9ICEhdXNlclBlcm1pc3Npb25zPy5lZGl0ICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuRGVsZXRlID0gISF1c2VyUGVybWlzc2lvbnM/LmRlbGV0ZSAmJiAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhblNob3dNZW51ID0gY2FuRWRpdCB8fCBjYW5EZWxldGVcbiAgY29uc3QgeyB0b2dnbGVGYXZvcml0ZSB9ID0gdXNlVG9nZ2xlRmF2b3JpdGUoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcblxuICBjb25zdCBvcGVuQ3JlYXRlQWdlbnRNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMub3Blbk1vZGFsLCB7IG9wdGlvbjogJ2NyZWF0ZV9hZ2VudCcgfSlcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgYWdlbnRWYWx1ZXM6IHtcbiAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICBpc0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gIH0sIFtldmVudEFtcGxpdHVkZV0pXG5cbiAgY29uc3QgaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgdXNlTWFya2V0cGxhY2VNYWlha2VyID0gISF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSICYmIHR5cGVvZiBvbkdvVG9NYWlha2VyID09PSAnZnVuY3Rpb24nXG4gICAgaWYgKHVzZU1hcmtldHBsYWNlTWFpYWtlcikge1xuICAgICAgb25Hb1RvTWFpYWtlcigpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb3BlbkNyZWF0ZUFnZW50TW9kYWwoKVxuICB9LCBbb25Hb1RvTWFpYWtlciwgb3BlbkNyZWF0ZUFnZW50TW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZUxvYWRNb3JlID0gKCkgPT4ge1xuICAgIGlmICghb25Mb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG9uTG9hZE1vcmVBZ2VudHMoKVxuICB9XG5cbiAgY29uc3QgZGVsZXRlTW9kYWxDaGF0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoYWdlbnRUb0RlbGV0ZSA/IHsgdGl0bGU6IGFnZW50VG9EZWxldGUubmFtZSwgaWQ6IGFnZW50VG9EZWxldGUuaWQgfSA6IG51bGwpLFxuICAgIFthZ2VudFRvRGVsZXRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlVXNlQWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgLy8gRGVsZWdhbW9zIGVuIGVsIGxpc3RlbmVyIGBtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudGAgZGVsIENoYXRBSU1vZGFsLFxuICAgIC8vIHF1ZSBhZGVtw6FzIGRlIHNldFByb2plY3Qvc2V0Q2xpZW50L3NlbGVjdEFnZW50IGVqZWN1dGEgbGEgcmVzb2x1Y2nDs25cbiAgICAvLyBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97YWdlbnRfaWR9YCBwYXJhIG5hdmVnYXIgYSBsYSBjb252ZXJzYWNpw7NuIGV4aXN0ZW50ZVxuICAgIC8vIHNpIGVsIHVzdWFyaW8geWEgdGllbmUgdW5hIGNvbiBlc2UgYWdlbnRlLlxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ21haWEtb3Blbi1uZXctY2hhdC13aXRoLWFnZW50Jywge1xuICAgICAgICBkZXRhaWw6IHsgYWdlbnQgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIG9uQmFjaygpXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVUZXh0ID0gKHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWVbMF0gfHwgJydcbiAgICByZXR1cm4gdmFsdWUgfHwgJydcbiAgfVxuXG4gIGNvbnN0IGdldENyZWF0ZWRBdExhYmVsID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IChhZ2VudCBhcyBBZ2VudCAmIHsgY3JlYXRlZF9hdD86IHN0cmluZyB9KS5jcmVhdGVkX2F0XG4gICAgaWYgKCFjcmVhdGVkQXQpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgY3JlYXRlZEF0RGF0ZSA9IG5ldyBEYXRlKGNyZWF0ZWRBdClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpKSkgcmV0dXJuICcnXG5cbiAgICBjb25zdCBkaWZmTXMgPSBEYXRlLm5vdygpIC0gY3JlYXRlZEF0RGF0ZS5nZXRUaW1lKClcbiAgICBjb25zdCBkYXlNcyA9IDEwMDAgKiA2MCAqIDYwICogMjRcbiAgICBjb25zdCBkYXlzID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihkaWZmTXMgLyBkYXlNcykpXG5cbiAgICBpZiAoZGF5cyA9PT0gMCkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzVG9kYXknKVxuICAgIGlmIChkYXlzID09PSAxKSByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNPbmVEYXlBZ28nKVxuICAgIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0RheXNBZ28nLCB7IGRheXMgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5FZGl0QWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICBrbm93bGVkZ2U6IGFnZW50Py5rbm93bGVkZ2UgfHwgW10sXG4gICAgICAgICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhZ2VudC5uYW1lLFxuICAgICAgICAgICAgICAgIGlkOiBhZ2VudC5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlRmF2b3JpdGUgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+LCBhZ2VudDogQWdlbnQsIGlzRmF2b3JpdGU6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgIHRvZ2dsZUZhdm9yaXRlKFxuICAgICAgYWdlbnQuaWQsXG4gICAgICB1cGRhdGVkQWdlbnQgPT4ge1xuICAgICAgICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/Lih1cGRhdGVkQWdlbnQpXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaXNGYXZvcml0ZVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlQWdlbnQoY2hhdC5pZClcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdjb25maXJtQWdlbnREZWxldGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgICBvbkRlbGV0ZUFnZW50Py4oY2hhdC5pZClcbiAgICAgIHNldEFnZW50VG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2Vycm9yQWdlbnRDcmVhdGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JBZ2VudElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvckFnZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSByZXR1cm5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBuZWFyQm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDQwXG4gICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgfVxuICB9LCBbaGFzTW9yZUFnZW50cywgbG9hZGluZ01vcmVBZ2VudHMsIG9uTG9hZE1vcmVBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGlmIChjb250YWluZXIuc2Nyb2xsSGVpZ2h0IDw9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQgKyAxKSB7XG4gICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW2N1c3RvbUFnZW50cy5sZW5ndGgsIGhhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ01BTXlBZ2VudHNDb250YWluZXIgaWQ9XCJteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lclwiICRoYXNBZ2VudHM9eyEhY3VzdG9tQWdlbnRzLmxlbmd0aH0+XG4gICAgICA8TUFJQUlzb2xvZ28gLz5cblxuICAgICAgPFNDTUFCb2R5ICRjYW5DcmVhdGVBZ2VudD17Y2FuQ3JlYXRlQWdlbnQgJiYgIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJ9PlxuICAgICAgICB7Y3VzdG9tQWdlbnRzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNQVRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTUFUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNSZWFkeVRpdGxlJyl9PC9TQ01BVGl0bGU+XG4gICAgICAgICAgICA8L1NDTUFUaXRsZUlubmVyPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ICYmICF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSID8gKFxuICAgICAgICAgICAgICA8U0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29wZW5DcmVhdGVBZ2VudE1vZGFsfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD57dCgnbWFya2V0cGxhY2UuY3JlYXRlQWdlbnQnKX08L1NDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9TQ01BQWN0aW9uc1Jvdz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQVRpdGxlV3JhcD5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFDYXJkc091dGVyPlxuICAgICAgICAgICAgPFNDTUFDYXJkc1Jvdz5cbiAgICAgICAgICAgICAge2N1c3RvbUFnZW50cy5tYXAoYWdlbnQgPT4gKFxuICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJ1dHRvbiBrZXk9e2FnZW50LmlkfSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gaGFuZGxlVXNlQWdlbnQoYWdlbnQpfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlRW1vamkgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YWdlbnQuZW1vamk/LnRyaW0oKSA/IGFnZW50LmVtb2ppIDogJ1xcdTAwYTAnfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUaXRsZUVtb2ppPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ21hcmtldHBsYWNlLmNhcmRNZW51QXJpYUxhYmVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQocHJldiA9PiAocHJldiA9PT0gYWdlbnQuaWQgPyBudWxsIDogYWdlbnQuaWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjOTk5XCIgd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BS2ViYWJCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlTmFtZT57YWdlbnQubmFtZX08L1NDTUFDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEludHJvVGV4dD57bm9ybWFsaXplVGV4dChhZ2VudC5pbnRyb2R1Y3Rpb24pfTwvU0NNQUNhcmRJbnRyb1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAge2dldENyZWF0ZWRBdExhYmVsKGFnZW50KSB8fCB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0ZhbGxiYWNrRGF0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx3YXlzVmlzaWJsZT17ISFhZ2VudC5pc19mYXZvcml0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlRmF2b3JpdGUoZXZlbnQsIGFnZW50LCAhIWFnZW50LmlzX2Zhdm9yaXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZVN0YXJXcmFwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJyM5OTknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD17YWdlbnQuaXNfZmF2b3JpdGUgPyAnI0ZGQzYyNCcgOiAnbm9uZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXthZ2VudC5pc19mYXZvcml0ZSA/ICcnIDogJ3N0YXItZmF2b3JpdGUtaWNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAge21lbnVPcGVuRm9yQWdlbnRJZCA9PT0gYWdlbnQuaWQgJiYgY2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRWRpdCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuRWRpdEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZWRpdCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5EZWxldGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWdlbnRUb0RlbGV0ZShhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2RlbGV0ZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVUaXRsZScpfTwvU0NNQUVtcHR5U3RhdGVUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudFxuICAgICAgICAgICAgICAgICAgICA/IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgOiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybScpfVxuICAgICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ID8gKFxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUVtcHR5U3RhdGVQcmltYXJ5QWN0aW9ufT5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgKX1cbiAgICAgICAge2xvYWRpbmdNb3JlQWdlbnRzID8gKFxuICAgICAgICAgIDxTQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgIDwvU0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDTUFCb2R5PlxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBZ2VudFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cImFnZW50XCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNQU15QWdlbnRzQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUVuRCxTQUFTQyxXQUFXLFFBQVEsMkNBQTJDO0FBQ3ZFLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxtQkFBbUIsUUFBUSx5REFBeUQ7QUFDN0YsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNsRCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFDMUQsU0FDRUMsUUFBUSxFQUNSQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsaUJBQWlCLEVBQ2pCQyxZQUFZLEVBQ1pDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsY0FBYyxFQUNkQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsb0JBQW9CLEVBQ3BCQyx3QkFBd0IsRUFDeEJDLG1CQUFtQixFQUNuQkMsc0JBQXNCLEVBQ3RCQyxvQkFBb0IsRUFDcEJDLGVBQWUsRUFDZkMsbUJBQW1CLEVBQ25CQyxxQkFBcUIsRUFDckJDLFNBQVMsRUFDVEMsY0FBYyxFQUNkQyxhQUFhLEVBQ2JDLGNBQWMsRUFDZEMsc0JBQXNCLEVBQ3RCQywwQkFBMEIsUUFDckIseUJBQXlCO0FBQ2hDLFNBQVNDLFdBQVcsUUFBUSxtQkFBbUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBYS9DLE9BQU8sSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFBQyxJQUFBLEVBU0E7RUFBQSxJQUFBQyxpQkFBQTtFQUFBLElBUnpCQyxNQUFNLEdBQUFGLElBQUEsQ0FBTkUsTUFBTTtJQUNOQyxNQUFNLEdBQUFILElBQUEsQ0FBTkcsTUFBTTtJQUNOQyxhQUFhLEdBQUFKLElBQUEsQ0FBYkksYUFBYTtJQUNiQyxxQkFBcUIsR0FBQUwsSUFBQSxDQUFyQksscUJBQXFCO0lBQUFDLGtCQUFBLEdBQUFOLElBQUEsQ0FDckJPLGFBQWE7SUFBYkEsYUFBYSxHQUFBRCxrQkFBQSxjQUFHLEtBQUssR0FBQUEsa0JBQUE7SUFBQUUscUJBQUEsR0FBQVIsSUFBQSxDQUNyQlMsaUJBQWlCO0lBQWpCQSxpQkFBaUIsR0FBQUQscUJBQUEsY0FBRyxLQUFLLEdBQUFBLHFCQUFBO0lBQ3pCRSxnQkFBZ0IsR0FBQVYsSUFBQSxDQUFoQlUsZ0JBQWdCO0lBQ2hCQyxhQUFhLEdBQUFYLElBQUEsQ0FBYlcsYUFBYTtFQUViLElBQUFDLGVBQUEsR0FBYzVELGNBQWMsQ0FBQyxDQUFDSyxRQUFRLENBQUN3RCxNQUFNLEVBQUV4RCxRQUFRLENBQUN5RCxRQUFRLENBQUMsQ0FBQztJQUExREMsQ0FBQyxHQUFBSCxlQUFBLENBQURHLENBQUM7RUFDVCxJQUFNQyxJQUFJLEdBQUcvRCxPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFBZ0UsbUJBQUEsR0FBdUQ5RCxrQkFBa0IsQ0FBQyxDQUFDO0lBQW5FK0QscUJBQXFCLEdBQUFELG1CQUFBLENBQXJCQyxxQkFBcUI7SUFBRUMsbUJBQW1CLEdBQUFGLG1CQUFBLENBQW5CRSxtQkFBbUI7RUFDbEQsSUFBTUMsWUFBWSxHQUFHakIsTUFBTSxDQUFDa0IsTUFBTSxDQUFDLFVBQUFDLEtBQUs7SUFBQSxPQUFJQSxLQUFLLENBQUNDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQ0QsS0FBSyxDQUFDRSxVQUFVO0VBQUEsRUFBQztFQUN6RixJQUFBQyxTQUFBLEdBQW9EN0UsUUFBUSxDQUFnQixJQUFJLENBQUM7SUFBQThFLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQTFFRyxrQkFBa0IsR0FBQUYsVUFBQTtJQUFFRyxxQkFBcUIsR0FBQUgsVUFBQTtFQUNoRCxJQUFBSSxVQUFBLEdBQTBDbEYsUUFBUSxDQUFlLElBQUksQ0FBQztJQUFBbUYsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBL0RFLGFBQWEsR0FBQUQsVUFBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsVUFBQTtFQUN0QyxJQUFNRyxlQUFlLEdBQUdsQixJQUFJLGFBQUpBLElBQUksZ0JBQUFmLGlCQUFBLEdBQUplLElBQUksQ0FBRW1CLFdBQVcsY0FBQWxDLGlCQUFBLHVCQUFqQkEsaUJBQUEsQ0FBbUJtQyxTQUFTO0VBQ3BELElBQU1DLGNBQWMsR0FBRyxDQUFDLEVBQUNILGVBQWUsYUFBZkEsZUFBZSxlQUFmQSxlQUFlLENBQUVJLE1BQU0sS0FBSSxDQUFDLENBQUNDLE1BQU0sQ0FBQ0Msd0NBQXdDO0VBQ3JHLElBQU1DLE9BQU8sR0FBRyxDQUFDLEVBQUNQLGVBQWUsYUFBZkEsZUFBZSxlQUFmQSxlQUFlLENBQUVRLElBQUksS0FBSSxDQUFDLENBQUNILE1BQU0sQ0FBQ0Msd0NBQXdDO0VBQzVGLElBQU1HLFNBQVMsR0FBRyxDQUFDLEVBQUNULGVBQWUsYUFBZkEsZUFBZSxlQUFmQSxlQUFlLFVBQVEsS0FBSSxDQUFDLENBQUNLLE1BQU0sQ0FBQ0Msd0NBQXdDO0VBQ2hHLElBQU1JLFdBQVcsR0FBR0gsT0FBTyxJQUFJRSxTQUFTO0VBQ3hDLElBQUFFLGtCQUFBLEdBQTJCdEYsaUJBQWlCLENBQUMsQ0FBQztJQUF0Q3VGLGNBQWMsR0FBQUQsa0JBQUEsQ0FBZEMsY0FBYztFQUN0QixJQUFNQyxjQUFjLEdBQUd0RixRQUFRLENBQUMsQ0FBQztFQUVqQyxJQUFNdUYsb0JBQW9CLEdBQUd2RyxXQUFXLENBQUMsWUFBTTtJQUM3Q3NHLGNBQWMsQ0FBQ3ZGLE1BQU0sQ0FBQ3lGLFNBQVMsRUFBRTtNQUFFQyxNQUFNLEVBQUU7SUFBZSxDQUFDLENBQUM7SUFDNURDLFFBQVEsQ0FBQ0MsYUFBYSxDQUNwQixJQUFJQyxXQUFXLENBQUMsNEJBQTRCLEVBQUU7TUFDNUNDLE1BQU0sRUFBRTtRQUNOQyxXQUFXLEVBQUU7VUFDWEMsTUFBTSxFQUFFO1lBQ05DLFNBQVMsRUFBRTtVQUNiLENBQUM7VUFDREMsTUFBTSxFQUFFO1FBQ1Y7TUFDRjtJQUNGLENBQUMsQ0FDSCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNYLGNBQWMsQ0FBQyxDQUFDO0VBRXBCLElBQU1ZLDZCQUE2QixHQUFHbEgsV0FBVyxDQUFDLFlBQU07SUFDdEQsSUFBTW1ILHFCQUFxQixHQUFHLENBQUMsQ0FBQ3JCLE1BQU0sQ0FBQ3NCLHdCQUF3QixJQUFJLE9BQU9sRCxhQUFhLEtBQUssVUFBVTtJQUN0RyxJQUFJaUQscUJBQXFCLEVBQUU7TUFDekJqRCxhQUFhLENBQUMsQ0FBQztNQUNmO0lBQ0Y7SUFDQXFDLG9CQUFvQixDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLENBQUNyQyxhQUFhLEVBQUVxQyxvQkFBb0IsQ0FBQyxDQUFDO0VBRXpDLElBQU1jLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0lBQzNCLElBQUksQ0FBQ3BELGdCQUFnQixJQUFJLENBQUNILGFBQWEsSUFBSUUsaUJBQWlCLEVBQUU7TUFDNUQ7SUFDRjtJQUNBQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQ3BCLENBQUM7RUFFRCxJQUFNcUQsZUFBZSxHQUFHcEgsT0FBTyxDQUM3QjtJQUFBLE9BQU9xRixhQUFhLEdBQUc7TUFBRWdDLEtBQUssRUFBRWhDLGFBQWEsQ0FBQ2lDLElBQUk7TUFBRUMsRUFBRSxFQUFFbEMsYUFBYSxDQUFDa0M7SUFBRyxDQUFDLEdBQUcsSUFBSTtFQUFBLENBQUMsRUFDbEYsQ0FBQ2xDLGFBQWEsQ0FDaEIsQ0FBQztFQUVELElBQU1tQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUk3QyxLQUFZLEVBQUs7SUFDdkM7SUFDQTtJQUNBO0lBQ0E7SUFDQTZCLFFBQVEsQ0FBQ0MsYUFBYSxDQUNwQixJQUFJQyxXQUFXLENBQUMsK0JBQStCLEVBQUU7TUFDL0NDLE1BQU0sRUFBRTtRQUFFaEMsS0FBSyxFQUFMQTtNQUFNO0lBQ2xCLENBQUMsQ0FDSCxDQUFDO0lBQ0RwQixNQUFNLENBQUMsQ0FBQztFQUNWLENBQUM7RUFFRCxJQUFNa0UsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxLQUFnQyxFQUFLO0lBQzFELElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixLQUFLLENBQUMsRUFBRSxPQUFPQSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUMvQyxPQUFPQSxLQUFLLElBQUksRUFBRTtFQUNwQixDQUFDO0VBRUQsSUFBTUcsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSWxELEtBQVksRUFBSztJQUMxQyxJQUFNbUQsU0FBUyxHQUFJbkQsS0FBSyxDQUFxQ29ELFVBQVU7SUFDdkUsSUFBSSxDQUFDRCxTQUFTLEVBQUUsT0FBTyxFQUFFO0lBRXpCLElBQU1FLGFBQWEsR0FBRyxJQUFJQyxJQUFJLENBQUNILFNBQVMsQ0FBQztJQUN6QyxJQUFJSSxNQUFNLENBQUNDLEtBQUssQ0FBQ0gsYUFBYSxDQUFDSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFO0lBRXBELElBQU1DLE1BQU0sR0FBR0osSUFBSSxDQUFDSyxHQUFHLENBQUMsQ0FBQyxHQUFHTixhQUFhLENBQUNJLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELElBQU1HLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLElBQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFRCxJQUFJLENBQUNFLEtBQUssQ0FBQ04sTUFBTSxHQUFHRSxLQUFLLENBQUMsQ0FBQztJQUVwRCxJQUFJQyxJQUFJLEtBQUssQ0FBQyxFQUFFLE9BQU9wRSxDQUFDLENBQUMsMkJBQTJCLENBQUM7SUFDckQsSUFBSW9FLElBQUksS0FBSyxDQUFDLEVBQUUsT0FBT3BFLENBQUMsQ0FBQywrQkFBK0IsQ0FBQztJQUN6RCxPQUFPQSxDQUFDLENBQUMsNkJBQTZCLEVBQUU7TUFBRW9FLElBQUksRUFBSkE7SUFBSyxDQUFDLENBQUM7RUFDbkQsQ0FBQztFQUVELElBQU1JLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlqRSxLQUFZLEVBQUs7SUFDNUM2QixRQUFRLENBQUNDLGFBQWEsQ0FDcEIsSUFBSUMsV0FBVyxDQUFDLDRCQUE0QixFQUFFO01BQzVDQyxNQUFNLEVBQUU7UUFDTkMsV0FBVyxFQUFFO1VBQ1hDLE1BQU0sRUFBRTtZQUNOQyxTQUFTLEVBQUUsSUFBSTtZQUNmK0IsU0FBUyxFQUFFLENBQUFsRSxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRWtFLFNBQVMsS0FBSSxFQUFFO1lBQ2pDQyxPQUFPLEVBQUU7Y0FDUHhCLElBQUksRUFBRTNDLEtBQUssQ0FBQzJDLElBQUk7Y0FDaEJDLEVBQUUsRUFBRTVDLEtBQUssQ0FBQzRDO1lBQ1o7VUFDRixDQUFDO1VBQ0RSLE1BQU0sRUFBRTtRQUNWO01BQ0Y7SUFDRixDQUFDLENBQ0gsQ0FBQztJQUNEN0IscUJBQXFCLENBQUMsSUFBSSxDQUFDO0VBQzdCLENBQUM7RUFFRCxJQUFNNkQsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsS0FBMEMsRUFBRXJFLEtBQVksRUFBRXNFLFVBQW1CLEVBQUs7SUFDOUdELEtBQUssQ0FBQ0UsY0FBYyxDQUFDLENBQUM7SUFDdEJGLEtBQUssQ0FBQ0csZUFBZSxDQUFDLENBQUM7SUFFdkJoRCxjQUFjLENBQ1p4QixLQUFLLENBQUM0QyxFQUFFLEVBQ1IsVUFBQTZCLFlBQVksRUFBSTtNQUNkMUYscUJBQXFCLGFBQXJCQSxxQkFBcUIsZUFBckJBLHFCQUFxQixDQUFHMEYsWUFBWSxDQUFDO0lBQ3ZDLENBQUMsRUFDREMsU0FBUyxFQUNUSixVQUNGLENBQUM7RUFDSCxDQUFDO0VBRUQsSUFBTUssbUJBQW1CO0lBQUEsSUFBQUMsS0FBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFBT0MsSUFBb0I7TUFBQSxJQUFBQyxFQUFBO01BQUEsT0FBQUosbUJBQUEsQ0FBQUssSUFBQSxXQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7VUFBQTtZQUFBRixRQUFBLENBQUFDLElBQUE7WUFBQUQsUUFBQSxDQUFBRSxJQUFBO1lBQUEsT0FFN0MxSixXQUFXLENBQUNxSixJQUFJLENBQUNyQyxFQUFFLENBQUM7VUFBQTtZQUMxQmhELHFCQUFxQixDQUFDSCxDQUFDLENBQUMscUJBQXFCLEVBQUU7Y0FBRThGLEVBQUUsRUFBRXhKLFFBQVEsQ0FBQ3lEO1lBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUVWLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUdtRyxJQUFJLENBQUNyQyxFQUFFLENBQUM7WUFDeEJqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDdEJKLHFCQUFxQixDQUFDLElBQUksQ0FBQztZQUFBNkUsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtZQUFBRixRQUFBLENBQUFDLElBQUE7WUFBQUgsRUFBQSxHQUFBRSxRQUFBO1lBRTNCdkYsbUJBQW1CLENBQUNKLENBQUMsQ0FBQyxtQkFBbUIsRUFBRTtjQUFFOEYsRUFBRSxFQUFFeEosUUFBUSxDQUFDeUQ7WUFBUyxDQUFDLENBQUMsQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBNEYsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBUixPQUFBO0lBQUEsQ0FFekU7SUFBQSxnQkFWS0wsbUJBQW1CQSxDQUFBYyxFQUFBO01BQUEsT0FBQWIsS0FBQSxDQUFBYyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEdBVXhCO0VBRUR2SyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU13SyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7TUFDL0IsSUFBSXRGLGtCQUFrQixFQUFFO1FBQ3RCQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7TUFDN0I7SUFDRixDQUFDO0lBRURzQixRQUFRLENBQUNnRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUVELGtCQUFrQixDQUFDO0lBQ3RELE9BQU8sWUFBTTtNQUNYL0QsUUFBUSxDQUFDaUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFRixrQkFBa0IsQ0FBQztJQUMzRCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUN0RixrQkFBa0IsQ0FBQyxDQUFDO0VBRXhCbEYsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNMkssU0FBUyxHQUFHbEUsUUFBUSxDQUFDbUUsY0FBYyxDQUFDLDRCQUE0QixDQUFDO0lBQ3ZFLElBQUksQ0FBQ0QsU0FBUyxFQUFFO01BQ2QsT0FBT3JCLFNBQVM7SUFDbEI7SUFFQSxJQUFNdUIsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztNQUNyQixJQUFJLENBQUNoSCxhQUFhLElBQUlFLGlCQUFpQixFQUFFO01BQ3pDLElBQVErRyxTQUFTLEdBQWlDSCxTQUFTLENBQW5ERyxTQUFTO1FBQUVDLFlBQVksR0FBbUJKLFNBQVMsQ0FBeENJLFlBQVk7UUFBRUMsWUFBWSxHQUFLTCxTQUFTLENBQTFCSyxZQUFZO01BQzdDLElBQU1DLFVBQVUsR0FBR0gsU0FBUyxHQUFHQyxZQUFZLElBQUlDLFlBQVksR0FBRyxFQUFFO01BQ2hFLElBQUlDLFVBQVUsRUFBRTtRQUNkN0QsY0FBYyxDQUFDLENBQUM7TUFDbEI7SUFDRixDQUFDO0lBRUR1RCxTQUFTLENBQUNGLGdCQUFnQixDQUFDLFFBQVEsRUFBRUksUUFBUSxDQUFDO0lBQzlDLE9BQU8sWUFBTTtNQUNYRixTQUFTLENBQUNELG1CQUFtQixDQUFDLFFBQVEsRUFBRUcsUUFBUSxDQUFDO0lBQ25ELENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ2hILGFBQWEsRUFBRUUsaUJBQWlCLEVBQUVDLGdCQUFnQixDQUFDLENBQUM7RUFFeERoRSxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU0ySyxTQUFTLEdBQUdsRSxRQUFRLENBQUNtRSxjQUFjLENBQUMsNEJBQTRCLENBQUM7SUFDdkUsSUFBSSxDQUFDRCxTQUFTLElBQUksQ0FBQzlHLGFBQWEsSUFBSUUsaUJBQWlCLEVBQUU7TUFDckQsT0FBT3VGLFNBQVM7SUFDbEI7SUFFQSxJQUFJcUIsU0FBUyxDQUFDSyxZQUFZLElBQUlMLFNBQVMsQ0FBQ0ksWUFBWSxHQUFHLENBQUMsRUFBRTtNQUN4RDNELGNBQWMsQ0FBQyxDQUFDO0lBQ2xCO0lBQ0EsT0FBT2tDLFNBQVM7RUFDbEIsQ0FBQyxFQUFFLENBQUM1RSxZQUFZLENBQUN3RyxNQUFNLEVBQUVySCxhQUFhLEVBQUVFLGlCQUFpQixFQUFFQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBRTdFLG9CQUNFWixLQUFBLENBQUNYLHFCQUFxQjtJQUFDK0UsRUFBRSxFQUFDLDRCQUE0QjtJQUFDMkQsVUFBVSxFQUFFLENBQUMsQ0FBQ3pHLFlBQVksQ0FBQ3dHLE1BQU87SUFBQUUsUUFBQSxnQkFDdkZsSSxJQUFBLENBQUNGLFdBQVcsSUFBRSxDQUFDLGVBRWZJLEtBQUEsQ0FBQ3BDLFFBQVE7TUFBQ3FLLGVBQWUsRUFBRTFGLGNBQWMsSUFBSSxDQUFDRSxNQUFNLENBQUNzQix3QkFBeUI7TUFBQWlFLFFBQUEsR0FDM0UxRyxZQUFZLENBQUN3RyxNQUFNLGdCQUNsQjlILEtBQUEsQ0FBQ1IsYUFBYTtRQUFBd0ksUUFBQSxnQkFDWmxJLElBQUEsQ0FBQ1AsY0FBYztVQUFBeUksUUFBQSxlQUNibEksSUFBQSxDQUFDUixTQUFTO1lBQUEwSSxRQUFBLEVBQUUvRyxDQUFDLENBQUMsZ0NBQWdDO1VBQUMsQ0FBWTtRQUFDLENBQzlDLENBQUMsRUFDaEJzQixjQUFjLElBQUksQ0FBQ0UsTUFBTSxDQUFDc0Isd0JBQXdCLGdCQUNqRGpFLElBQUEsQ0FBQ0wsY0FBYztVQUFBdUksUUFBQSxlQUNibEksSUFBQSxDQUFDSixzQkFBc0I7WUFBQytCLElBQUksRUFBQyxRQUFRO1lBQUN5RyxPQUFPLEVBQUVoRixvQkFBcUI7WUFBQThFLFFBQUEsZUFDbEVsSSxJQUFBLENBQUNILDBCQUEwQjtjQUFBcUksUUFBQSxFQUFFL0csQ0FBQyxDQUFDLHlCQUF5QjtZQUFDLENBQTZCO1VBQUMsQ0FDakU7UUFBQyxDQUNYLENBQUMsR0FDZixJQUFJO01BQUEsQ0FDSyxDQUFDLEdBQ2QsSUFBSSxFQUVQSyxZQUFZLENBQUN3RyxNQUFNLGdCQUNsQmhJLElBQUEsQ0FBQ25CLGNBQWM7UUFBQXFKLFFBQUEsZUFDYmxJLElBQUEsQ0FBQ2xCLFlBQVk7VUFBQW9KLFFBQUEsRUFDVjFHLFlBQVksQ0FBQzZHLEdBQUcsQ0FBQyxVQUFBM0csS0FBSztZQUFBLElBQUE0RyxZQUFBO1lBQUEsb0JBQ3JCcEksS0FBQSxDQUFDbEMsY0FBYztjQUFnQjJELElBQUksRUFBQyxRQUFRO2NBQUN5RyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtnQkFBQSxPQUFRN0QsY0FBYyxDQUFDN0MsS0FBSyxDQUFDO2NBQUEsQ0FBQztjQUFBd0csUUFBQSxnQkFDaEZoSSxLQUFBLENBQUNoQyxjQUFjO2dCQUFBZ0ssUUFBQSxnQkFDYmhJLEtBQUEsQ0FBQy9CLGNBQWM7a0JBQUErSixRQUFBLGdCQUNibEksSUFBQSxDQUFDckIsa0JBQWtCO29CQUFDLG1CQUFXO29CQUFBdUosUUFBQSxFQUM1QixDQUFBSSxZQUFBLEdBQUE1RyxLQUFLLENBQUM2RyxLQUFLLGNBQUFELFlBQUEsZUFBWEEsWUFBQSxDQUFhRSxJQUFJLENBQUMsQ0FBQyxHQUFHOUcsS0FBSyxDQUFDNkcsS0FBSyxHQUFHO2tCQUFRLENBQzNCLENBQUMsRUFDcEJ2RixXQUFXLGdCQUNWaEQsSUFBQSxDQUFDWCxlQUFlO29CQUNkc0MsSUFBSSxFQUFDLFFBQVE7b0JBQ2IsY0FBWVIsQ0FBQyxDQUFDLCtCQUErQixDQUFFO29CQUMvQ2lILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFckMsS0FBSyxFQUFJO3NCQUNoQkEsS0FBSyxDQUFDRSxjQUFjLENBQUMsQ0FBQztzQkFDdEJGLEtBQUssQ0FBQ0csZUFBZSxDQUFDLENBQUM7c0JBQ3ZCakUscUJBQXFCLENBQUMsVUFBQThFLElBQUk7d0JBQUEsT0FBS0EsSUFBSSxLQUFLckYsS0FBSyxDQUFDNEMsRUFBRSxHQUFHLElBQUksR0FBRzVDLEtBQUssQ0FBQzRDLEVBQUU7c0JBQUEsQ0FBQyxDQUFDO29CQUN0RSxDQUFFO29CQUFBNEQsUUFBQSxlQUVGbEksSUFBQSxDQUFDL0MsUUFBUTtzQkFBQ3dMLEtBQUssRUFBQyxNQUFNO3NCQUFDQyxLQUFLLEVBQUUsRUFBRztzQkFBQ0MsTUFBTSxFQUFFO29CQUFHLENBQUU7a0JBQUMsQ0FDakMsQ0FBQyxHQUNoQixJQUFJO2dCQUFBLENBQ00sQ0FBQyxlQUNqQjNJLElBQUEsQ0FBQ3BCLGlCQUFpQjtrQkFBQXNKLFFBQUEsRUFBRXhHLEtBQUssQ0FBQzJDO2dCQUFJLENBQW9CLENBQUM7Y0FBQSxDQUNyQyxDQUFDLGVBQ2pCbkUsS0FBQSxDQUFDbkMsWUFBWTtnQkFBQW1LLFFBQUEsZ0JBQ1hsSSxJQUFBLENBQUM1QixpQkFBaUI7a0JBQUE4SixRQUFBLEVBQUUxRCxhQUFhLENBQUM5QyxLQUFLLENBQUNrSCxZQUFZO2dCQUFDLENBQW9CLENBQUMsZUFDMUUxSSxLQUFBLENBQUNqQyxjQUFjO2tCQUFBaUssUUFBQSxnQkFDYmxJLElBQUEsQ0FBQ3RCLGtCQUFrQjtvQkFBQXdKLFFBQUEsRUFDaEJ0RCxpQkFBaUIsQ0FBQ2xELEtBQUssQ0FBQyxJQUFJUCxDQUFDLENBQUMsa0NBQWtDO2tCQUFDLENBQ2hELENBQUMsZUFDckJuQixJQUFBLENBQUM3QyxPQUFPO29CQUFDaUgsS0FBSyxFQUFFMUMsS0FBSyxDQUFDbUgsV0FBVyxHQUFHMUgsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEdBQUdBLENBQUMsQ0FBQyxvQkFBb0IsQ0FBRTtvQkFBQStHLFFBQUEsZUFDdkZsSSxJQUFBLENBQUN4QixrQkFBa0I7c0JBQ2pCbUQsSUFBSSxFQUFDLFFBQVE7c0JBQ2IsY0FBWUQsS0FBSyxDQUFDbUgsV0FBVyxHQUFHMUgsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEdBQUdBLENBQUMsQ0FBQyxvQkFBb0IsQ0FBRTtzQkFDckYySCxjQUFjLEVBQUUsQ0FBQyxDQUFDcEgsS0FBSyxDQUFDbUgsV0FBWTtzQkFDcENULE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFckMsS0FBSzt3QkFBQSxPQUFJRCxvQkFBb0IsQ0FBQ0MsS0FBSyxFQUFFckUsS0FBSyxFQUFFLENBQUMsQ0FBQ0EsS0FBSyxDQUFDbUgsV0FBVyxDQUFDO3NCQUFBLENBQUM7c0JBQUFYLFFBQUEsZUFFMUVsSSxJQUFBLENBQUN2QixvQkFBb0I7d0JBQUF5SixRQUFBLGVBQ25CbEksSUFBQSxDQUFDOUMsSUFBSTswQkFDSHdMLEtBQUssRUFBRSxFQUFHOzBCQUNWQyxNQUFNLEVBQUUsRUFBRzswQkFDWEYsS0FBSyxFQUFFL0csS0FBSyxDQUFDbUgsV0FBVyxHQUFHLFNBQVMsR0FBRyxNQUFPOzBCQUM5Q0UsSUFBSSxFQUFFckgsS0FBSyxDQUFDbUgsV0FBVyxHQUFHLFNBQVMsR0FBRyxNQUFPOzBCQUM3Q0csT0FBTyxFQUFDLE9BQU87MEJBQ2ZDLFNBQVMsRUFBRXZILEtBQUssQ0FBQ21ILFdBQVcsR0FBRyxFQUFFLEdBQUc7d0JBQXFCLENBQzFEO3NCQUFDLENBQ2tCO29CQUFDLENBQ0w7a0JBQUMsQ0FDZCxDQUFDO2dCQUFBLENBQ0ksQ0FBQztjQUFBLENBQ0wsQ0FBQyxFQUNkN0csa0JBQWtCLEtBQUtOLEtBQUssQ0FBQzRDLEVBQUUsSUFBSXRCLFdBQVcsZ0JBQzdDaEQsSUFBQSxDQUFDM0IsWUFBWTtnQkFDWCtKLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFckMsS0FBSyxFQUFJO2tCQUNoQkEsS0FBSyxDQUFDRSxjQUFjLENBQUMsQ0FBQztrQkFDdEJGLEtBQUssQ0FBQ0csZUFBZSxDQUFDLENBQUM7Z0JBQ3pCLENBQUU7Z0JBQUFnQyxRQUFBLGVBRUZoSSxLQUFBLENBQUMzQixpQkFBaUI7a0JBQUEySixRQUFBLEdBQ2ZyRixPQUFPLGdCQUNON0MsSUFBQSxDQUFDMUIsZ0JBQWdCO29CQUNmcUQsSUFBSSxFQUFDLFFBQVE7b0JBQ2J5RyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO3NCQUNiekMsbUJBQW1CLENBQUNqRSxLQUFLLENBQUM7b0JBQzVCLENBQUU7b0JBQUF3RyxRQUFBLEVBRUQvRyxDQUFDLENBQUMsTUFBTSxFQUFFO3NCQUFFOEYsRUFBRSxFQUFFeEosUUFBUSxDQUFDeUQ7b0JBQVMsQ0FBQztrQkFBQyxDQUNyQixDQUFDLEdBQ2pCLElBQUksRUFDUDZCLFNBQVMsZ0JBQ1IvQyxJQUFBLENBQUMxQixnQkFBZ0I7b0JBQ2ZxRCxJQUFJLEVBQUMsUUFBUTtvQkFDYnlHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7c0JBQ2IvRixnQkFBZ0IsQ0FBQ1gsS0FBSyxDQUFDO29CQUN6QixDQUFFO29CQUFBd0csUUFBQSxFQUVEL0csQ0FBQyxDQUFDLFFBQVEsRUFBRTtzQkFBRThGLEVBQUUsRUFBRXhKLFFBQVEsQ0FBQ3lEO29CQUFTLENBQUM7a0JBQUMsQ0FDdkIsQ0FBQyxHQUNqQixJQUFJO2dCQUFBLENBQ1M7Y0FBQyxDQUNSLENBQUMsR0FDYixJQUFJO1lBQUEsR0EvRVdRLEtBQUssQ0FBQzRDLEVBZ0ZYLENBQUM7VUFBQSxDQUNsQjtRQUFDLENBQ1U7TUFBQyxDQUNELENBQUMsZ0JBRWpCcEUsS0FBQSxDQUFDbkIsa0JBQWtCO1FBQUFtSixRQUFBLGdCQUNqQmxJLElBQUEsQ0FBQ2hCLG9CQUFvQjtVQUFBa0osUUFBQSxlQUNuQmhJLEtBQUEsQ0FBQ2pCLHdCQUF3QjtZQUFBaUosUUFBQSxnQkFDdkJsSSxJQUFBLENBQUNkLG1CQUFtQjtjQUFBZ0osUUFBQSxFQUFFL0csQ0FBQyxDQUFDLHFDQUFxQztZQUFDLENBQXNCLENBQUMsZUFDckZuQixJQUFBLENBQUNiLHNCQUFzQjtjQUFBK0ksUUFBQSxFQUNwQnpGLGNBQWMsR0FDWHRCLENBQUMsQ0FBQywyQ0FBMkMsQ0FBQyxHQUM5Q0EsQ0FBQyxDQUFDLGlEQUFpRDtZQUFDLENBQ2xDLENBQUM7VUFBQSxDQUNEO1FBQUMsQ0FDUCxDQUFDLEVBQ3RCc0IsY0FBYyxnQkFDYnpDLElBQUEsQ0FBQ1osb0JBQW9CO1VBQUN1QyxJQUFJLEVBQUMsUUFBUTtVQUFDeUcsT0FBTyxFQUFFckUsNkJBQThCO1VBQUFtRSxRQUFBLEVBQ3hFL0csQ0FBQyxDQUFDLHNDQUFzQztRQUFDLENBQ3RCLENBQUMsR0FDckIsSUFBSTtNQUFBLENBQ1UsQ0FDckIsRUFDQU4saUJBQWlCLGdCQUNoQmIsSUFBQSxDQUFDVixtQkFBbUI7UUFBQTRJLFFBQUEsZUFDbEJsSSxJQUFBLENBQUN0QyxNQUFNO1VBQUN3TCxJQUFJLEVBQUM7UUFBTyxDQUFFO01BQUMsQ0FDSixDQUFDLEdBQ3BCLElBQUk7SUFBQSxDQUNBLENBQUMsRUFDVi9FLGVBQWUsZ0JBQ2RuRSxJQUFBLENBQUN4QyxtQkFBbUI7TUFDbEIyTCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVE5RyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFBQSxDQUFDO01BQ3RDK0csUUFBUSxFQUFFO1FBQ1JDLG1CQUFtQixFQUFFaEQ7TUFDdkIsQ0FBRTtNQUNGTSxJQUFJLEVBQUV4QyxlQUFnQjtNQUN0Qm1GLE1BQU0sRUFBQztJQUFPLENBQ2YsQ0FBQyxHQUNBLElBQUk7RUFBQSxDQUNhLENBQUM7QUFFNUIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
360
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJkZWxldGVBZ2VudCIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJTRUNUSU9OUyIsIkxvYWRlciIsInVzZVRvZ2dsZUZhdm9yaXRlIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTQ01BQm9keSIsIlNDTUFDYXJkQm9keSIsIlNDTUFDYXJkQnV0dG9uIiwiU0NNQUNhcmRGb290ZXIiLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkVG9wUm93IiwiU0NNQUNhcmRJbnRyb1RleHQiLCJTQ01BQ2FyZE1lbnUiLCJTQ01BQ2FyZE1lbnVJdGVtIiwiU0NNQUNhcmRNZW51SXRlbXMiLCJTQ01BRmF2b3JpdGVCdXR0b24iLCJTQ01BRmF2b3JpdGVTdGFyV3JhcCIsIlNDTUFDYXJkRm9vdGVyRGF0ZSIsIlNDTUFDYXJkVGl0bGVFbW9qaSIsIlNDTUFDYXJkVGl0bGVOYW1lIiwiU0NNQUNhcmRzT3V0ZXIiLCJTQ01BQ2FyZHNSb3ciLCJTQ01BRW1wdHlTdGF0ZVJvb3QiLCJTQ01BRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTUFFbXB0eVN0YXRlVGl0bGUiLCJTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIiwiU0NNQU15QWdlbnRzQ29udGFpbmVyIiwiU0NNQVRpdGxlIiwiU0NNQVRpdGxlSW5uZXIiLCJTQ01BVGl0bGVXcmFwIiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BQ3JlYXRlTWFudWFsQnV0dG9uIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQiLCJNQUlBSXNvbG9nbyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlNeUFnZW50cyIsIl9yZWYiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uQmFjayIsImFnZW50cyIsIm9uRGVsZXRlQWdlbnQiLCJvbkZhdm9yaXRlQWdlbnRVcGRhdGUiLCJfcmVmJGhhc01vcmVBZ2VudHMiLCJoYXNNb3JlQWdlbnRzIiwiX3JlZiRsb2FkaW5nTW9yZUFnZW50IiwibG9hZGluZ01vcmVBZ2VudHMiLCJvbkxvYWRNb3JlQWdlbnRzIiwib25Hb1RvTWFpYWtlciIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwidCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiY3VzdG9tQWdlbnRzIiwiZmlsdGVyIiwiYWdlbnQiLCJ0eXBlIiwiaXNfZGVsZXRlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1lbnVPcGVuRm9yQWdlbnRJZCIsInNldE1lbnVPcGVuRm9yQWdlbnRJZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWdlbnRUb0RlbGV0ZSIsInNldEFnZW50VG9EZWxldGUiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50IiwiY3JlYXRlIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhbkVkaXQiLCJlZGl0IiwiY2FuRGVsZXRlIiwiY2FuU2hvd01lbnUiLCJfdXNlVG9nZ2xlRmF2b3JpdGUiLCJ0b2dnbGVGYXZvcml0ZSIsImV2ZW50QW1wbGl0dWRlIiwib3BlbkNyZWF0ZUFnZW50TW9kYWwiLCJvcGVuTW9kYWwiLCJvcHRpb24iLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwiaXNPcGVuIiwiaGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb24iLCJ1c2VNYXJrZXRwbGFjZU1haWFrZXIiLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJrbm93bGVkZ2UiLCJnZW5lcmFsIiwiaGFuZGxlVG9nZ2xlRmF2b3JpdGUiLCJldmVudCIsImlzRmF2b3JpdGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZWRBZ2VudCIsInVuZGVmaW5lZCIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJucyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibmVhckJvdHRvbSIsImxlbmd0aCIsIiRoYXNBZ2VudHMiLCJjaGlsZHJlbiIsIiRjYW5DcmVhdGVBZ2VudCIsIm9uQ2xpY2siLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBkZWxldGVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2RlbGV0ZUFnZW50J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgdXNlVG9nZ2xlRmF2b3JpdGUgfSBmcm9tICcuLi8uLi8uLi9ob29rcydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkVG9wUm93LFxuICBTQ01BQ2FyZEludHJvVGV4dCxcbiAgU0NNQUNhcmRNZW51LFxuICBTQ01BQ2FyZE1lbnVJdGVtLFxuICBTQ01BQ2FyZE1lbnVJdGVtcyxcbiAgU0NNQUZhdm9yaXRlQnV0dG9uLFxuICBTQ01BRmF2b3JpdGVTdGFyV3JhcCxcbiAgU0NNQUNhcmRGb290ZXJEYXRlLFxuICBTQ01BQ2FyZFRpdGxlRW1vamksXG4gIFNDTUFDYXJkVGl0bGVOYW1lLFxuICBTQ01BQ2FyZHNPdXRlcixcbiAgU0NNQUNhcmRzUm93LFxuICBTQ01BRW1wdHlTdGF0ZVJvb3QsXG4gIFNDTUFFbXB0eVN0YXRlQ29sdW1uLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2ssXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlU3VidGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlQnV0dG9uLFxuICBTQ01BS2ViYWJCdXR0b24sXG4gIFNDTUFMb2FkTW9yZVdyYXBwZXIsXG4gIFNDTUFNeUFnZW50c0NvbnRhaW5lcixcbiAgU0NNQVRpdGxlLFxuICBTQ01BVGl0bGVJbm5lcixcbiAgU0NNQVRpdGxlV3JhcCxcbiAgU0NNQUFjdGlvbnNSb3csXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b24sXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0LFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IG9wZW5DcmVhdGVBZ2VudE1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnY3JlYXRlX2FnZW50JyB9KVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgfSwgW2V2ZW50QW1wbGl0dWRlXSlcblxuICBjb25zdCBoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB1c2VNYXJrZXRwbGFjZU1haWFrZXIgPSAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVIgJiYgdHlwZW9mIG9uR29Ub01haWFrZXIgPT09ICdmdW5jdGlvbidcbiAgICBpZiAodXNlTWFya2V0cGxhY2VNYWlha2VyKSB7XG4gICAgICBvbkdvVG9NYWlha2VyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvcGVuQ3JlYXRlQWdlbnRNb2RhbCgpXG4gIH0sIFtvbkdvVG9NYWlha2VyLCBvcGVuQ3JlYXRlQWdlbnRNb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgaWYgKCFvbkxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb25Mb2FkTW9yZUFnZW50cygpXG4gIH1cblxuICBjb25zdCBkZWxldGVNb2RhbENoYXQgPSB1c2VNZW1vKFxuICAgICgpID0+IChhZ2VudFRvRGVsZXRlID8geyB0aXRsZTogYWdlbnRUb0RlbGV0ZS5uYW1lLCBpZDogYWdlbnRUb0RlbGV0ZS5pZCB9IDogbnVsbCksXG4gICAgW2FnZW50VG9EZWxldGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZWxlY3RBZ2VudChhZ2VudClcbiAgICBvbkJhY2soKVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplVGV4dCA9ICh2YWx1ZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlWzBdIHx8ICcnXG4gICAgcmV0dXJuIHZhbHVlIHx8ICcnXG4gIH1cblxuICBjb25zdCBnZXRDcmVhdGVkQXRMYWJlbCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkQXQgPSAoYWdlbnQgYXMgQWdlbnQgJiB7IGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfSkuY3JlYXRlZF9hdFxuICAgIGlmICghY3JlYXRlZEF0KSByZXR1cm4gJydcblxuICAgIGNvbnN0IGNyZWF0ZWRBdERhdGUgPSBuZXcgRGF0ZShjcmVhdGVkQXQpXG4gICAgaWYgKE51bWJlci5pc05hTihjcmVhdGVkQXREYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpXG4gICAgY29uc3QgZGF5TXMgPSAxMDAwICogNjAgKiA2MCAqIDI0XG4gICAgY29uc3QgZGF5cyA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoZGlmZk1zIC8gZGF5TXMpKVxuXG4gICAgaWYgKGRheXMgPT09IDApIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c1RvZGF5JylcbiAgICBpZiAoZGF5cyA9PT0gMSkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzT25lRGF5QWdvJylcbiAgICByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNEYXlzQWdvJywgeyBkYXlzIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuRWRpdEFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAga25vd2xlZGdlOiBhZ2VudD8ua25vd2xlZGdlIHx8IFtdLFxuICAgICAgICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYWdlbnQubmFtZSxcbiAgICAgICAgICAgICAgICBpZDogYWdlbnQuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUZhdm9yaXRlID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PiwgYWdlbnQ6IEFnZW50LCBpc0Zhdm9yaXRlOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0b2dnbGVGYXZvcml0ZShcbiAgICAgIGFnZW50LmlkLFxuICAgICAgdXBkYXRlZEFnZW50ID0+IHtcbiAgICAgICAgb25GYXZvcml0ZUFnZW50VXBkYXRlPy4odXBkYXRlZEFnZW50KVxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGlzRmF2b3JpdGVcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gYXN5bmMgKGNoYXQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGRlbGV0ZUFnZW50KGNoYXQuaWQpXG4gICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnY29uZmlybUFnZW50RGVsZXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgICAgb25EZWxldGVBZ2VudD8uKGNoYXQuaWQpXG4gICAgICBzZXRBZ2VudFRvRGVsZXRlKG51bGwpXG4gICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdlcnJvckFnZW50Q3JlYXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgICAgaWYgKG1lbnVPcGVuRm9yQWdlbnRJZCkge1xuICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbbWVudU9wZW5Gb3JBZ2VudElkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykgcmV0dXJuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3QgbmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSA0MFxuICAgICAgaWYgKG5lYXJCb3R0b20pIHtcbiAgICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyLnNjcm9sbEhlaWdodCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMSkge1xuICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtjdXN0b21BZ2VudHMubGVuZ3RoLCBoYXNNb3JlQWdlbnRzLCBsb2FkaW5nTW9yZUFnZW50cywgb25Mb2FkTW9yZUFnZW50c10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNQU15QWdlbnRzQ29udGFpbmVyIGlkPVwibXktYWdlbnRzLXNjcm9sbC1jb250YWluZXJcIiAkaGFzQWdlbnRzPXshIWN1c3RvbUFnZW50cy5sZW5ndGh9PlxuICAgICAgPE1BSUFJc29sb2dvIC8+XG5cbiAgICAgIDxTQ01BQm9keSAkY2FuQ3JlYXRlQWdlbnQ9e2NhbkNyZWF0ZUFnZW50ICYmICF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSfT5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFUaXRsZVdyYXA+XG4gICAgICAgICAgICA8U0NNQVRpdGxlSW5uZXI+XG4gICAgICAgICAgICAgIDxTQ01BVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzUmVhZHlUaXRsZScpfTwvU0NNQVRpdGxlPlxuICAgICAgICAgICAgPC9TQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudCAmJiAhd2luZG93Lk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiA/IChcbiAgICAgICAgICAgICAgPFNDTUFBY3Rpb25zUm93PlxuICAgICAgICAgICAgICAgIDxTQ01BQ3JlYXRlTWFudWFsQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ3JlYXRlQWdlbnRNb2RhbH0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQ+e3QoJ21hcmtldHBsYWNlLmNyZWF0ZUFnZW50Jyl9PC9TQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD5cbiAgICAgICAgICAgICAgICA8L1NDTUFDcmVhdGVNYW51YWxCdXR0b24+XG4gICAgICAgICAgICAgIDwvU0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgICAgIDxTQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgICAgIHtjdXN0b21BZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICA8U0NNQUNhcmRCdXR0b24ga2V5PXthZ2VudC5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZUFnZW50KGFnZW50KX0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZUVtb2ppIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50LmVtb2ppPy50cmltKCkgPyBhZ2VudC5lbW9qaSA6ICdcXHUwMGEwJ31cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUtlYmFiQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdtYXJrZXRwbGFjZS5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKHByZXYgPT4gKHByZXYgPT09IGFnZW50LmlkID8gbnVsbCA6IGFnZW50LmlkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVEb3RzIGNvbG9yPVwiIzk5OVwiIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUtlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZU5hbWU+e2FnZW50Lm5hbWV9PC9TQ01BQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRJbnRyb1RleHQ+e25vcm1hbGl6ZVRleHQoYWdlbnQuaW50cm9kdWN0aW9uKX08L1NDTUFDYXJkSW50cm9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtnZXRDcmVhdGVkQXRMYWJlbChhZ2VudCkgfHwgdCgnbWFya2V0cGxhY2UubXlBZ2VudHNGYWxsYmFja0RhdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyRGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGFsd2F5c1Zpc2libGU9eyEhYWdlbnQuaXNfZmF2b3JpdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGhhbmRsZVRvZ2dsZUZhdm9yaXRlKGV2ZW50LCBhZ2VudCwgISFhZ2VudC5pc19mYXZvcml0ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICcjOTk5J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJ25vbmUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWdlbnQuaXNfZmF2b3JpdGUgPyAnJyA6ICdzdGFyLWZhdm9yaXRlLWljb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlU3RhcldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFGYXZvcml0ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvckFnZW50SWQgPT09IGFnZW50LmlkICYmIGNhblNob3dNZW51ID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkVkaXQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkVkaXRBZ2VudChhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2VkaXQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRGVsZXRlID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFnZW50VG9EZWxldGUoYWdlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdkZWxldGUnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZE1lbnU+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDTUFDYXJkQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NNQUNhcmRzUm93PlxuICAgICAgICAgIDwvU0NNQUNhcmRzT3V0ZXI+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFNDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUnKX08L1NDTUFFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnRcbiAgICAgICAgICAgICAgICAgICAgPyB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbicpXG4gICAgICAgICAgICAgICAgICAgIDogdCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm0nKX1cbiAgICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudCA/IChcbiAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbn0+XG4gICAgICAgICAgICAgICAge3QoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZUJ1dHRvbicpfVxuICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkaW5nTW9yZUFnZW50cyA/IChcbiAgICAgICAgICA8U0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICA8L1NDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ01BQm9keT5cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QWdlbnRUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBhY3Rpb249XCJhZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTUFNeUFnZW50c0NvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBRW5ELFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLG1CQUFtQixRQUFRLHlEQUF5RDtBQUM3RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQ2xELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUNFQyxRQUFRLEVBQ1JDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGNBQWMs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
@@ -1,5 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _regeneratorRuntime from "@babel/runtime/regenerator";
3
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
2
  /* eslint-disable react/function-component-definition */
5
3
  /* eslint-disable jsx-a11y/click-events-have-key-events */
@@ -12,45 +10,16 @@ import { useUser } from '../../../context/cor-user';
12
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
11
  export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
14
12
  var _agent$welcome_messag, _agent$welcome_messag2, _user$firstName;
15
- var handlers = _ref.handlers,
16
- onResolveChat = _ref.onResolveChat;
13
+ var handlers = _ref.handlers;
17
14
  var _useGlobalContext = useGlobalContext(),
18
15
  setProject = _useGlobalContext.setProject,
19
16
  agent = _useGlobalContext.agent;
20
17
  var user = useUser();
21
18
  var welcomeMessage = (_agent$welcome_messag = agent === null || agent === void 0 || (_agent$welcome_messag2 = agent.welcome_message) === null || _agent$welcome_messag2 === void 0 || (_agent$welcome_messag2 = _agent$welcome_messag2.replace(/\{\{name\}\}/g, (_user$firstName = user === null || user === void 0 ? void 0 : user.firstName) !== null && _user$firstName !== void 0 ? _user$firstName : '')) === null || _agent$welcome_messag2 === void 0 ? void 0 : _agent$welcome_messag2.replace(/\\n/g, '\n')) !== null && _agent$welcome_messag !== void 0 ? _agent$welcome_messag : '';
22
- var handleProjectSelected = /*#__PURE__*/function () {
23
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(selectedProject) {
24
- var navigated;
25
- return _regeneratorRuntime.wrap(function (_context) {
26
- while (1) switch (_context.prev = _context.next) {
27
- case 0:
28
- setProject(selectedProject);
29
- if (!(onResolveChat && agent && (selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.id) != null)) {
30
- _context.next = 2;
31
- break;
32
- }
33
- _context.next = 1;
34
- return onResolveChat(agent, selectedProject.id);
35
- case 1:
36
- navigated = _context.sent;
37
- if (!navigated) {
38
- _context.next = 2;
39
- break;
40
- }
41
- return _context.abrupt("return");
42
- case 2:
43
- handlers();
44
- case 3:
45
- case "end":
46
- return _context.stop();
47
- }
48
- }, _callee);
49
- }));
50
- return function handleProjectSelected(_x) {
51
- return _ref2.apply(this, arguments);
52
- };
53
- }();
19
+ var handleProjectSelected = function handleProjectSelected(selectedProject) {
20
+ setProject(selectedProject);
21
+ handlers();
22
+ };
54
23
  return /*#__PURE__*/_jsx(SCCAIProjectSelectorWrapper, {
55
24
  children: /*#__PURE__*/_jsxs(SCCAIProjectSelectorContainer, {
56
25
  children: [/*#__PURE__*/_jsx(SCCAIProjectSelectorIconContainer, {
@@ -74,4 +43,4 @@ export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
74
43
  })
75
44
  });
76
45
  };
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VHbG9iYWxDb250ZXh0IiwiUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3RvckxvZ29XcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50IiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSIsIlNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyIsIk1BSUFJc29sb2dvIiwidXNlVXNlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnMiIsIl91c2VyJGZpcnN0TmFtZSIsImhhbmRsZXJzIiwib25SZXNvbHZlQ2hhdCIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2V0UHJvamVjdCIsImFnZW50IiwidXNlciIsIndlbGNvbWVNZXNzYWdlIiwid2VsY29tZV9tZXNzYWdlIiwicmVwbGFjZSIsImZpcnN0TmFtZSIsImhhbmRsZVByb2plY3RTZWxlY3RlZCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJzZWxlY3RlZFByb2plY3QiLCJuYXZpZ2F0ZWQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImlkIiwic2VudCIsImFicnVwdCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY2hpbGRyZW4iLCJzdHlsZSIsIndoaXRlU3BhY2UiLCJvblByb2plY3RTZWxlY3RlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlQcm9qZWN0U2VsZWN0b3IvQ2hhdEFJUHJvamVjdFNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFByb2plY3RTZWxlY3RvciB9IGZyb20gJy4uLy4uL2F0b21zL1Byb2plY3RTZWxlY3RvcidcbmltcG9ydCB7XG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9ySWNvbkNvbnRhaW5lcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50LFxuICBTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGUsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyxcbn0gZnJvbSAnLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3Iuc3R5bGVzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcblxudHlwZSBDaGF0QUlQcm9qZWN0U2VsZWN0b3JQcm9wcyA9IHtcbiAgaGFuZGxlcnM6ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIFNpIHNlIHBhc2EsIHRyYXMgc2VsZWNjaW9uYXIgZWwgcHJveWVjdG8gc2UgcmVzdWVsdmUgYEdFVCAvdjIvc2Vzc2lvbnMvYWdlbnQve2FnZW50X2lkfS97cHJvamVjdF9pZH1gXG4gICAqIHkgc2UgbmF2ZWdhIGFsIGNoYXQgZXhpc3RlbnRlIHNpIGxvIGhheS4gU2kgbGEgcXVlcnkgbm8gZW5jdWVudHJhIHNlc2nDs24gKG8gZmFsbGEpLFxuICAgKiBzZSBjYWUgYWwgY29tcG9ydGFtaWVudG8gb3JpZ2luYWwgKGBoYW5kbGVycygpYCDihpIgaG9tZSAvIG51ZXZvIGNoYXQpLlxuICAgKi9cbiAgb25SZXNvbHZlQ2hhdD86IChhZ2VudDogQWdlbnQsIGVudGl0eUlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkgPT4gUHJvbWlzZTxib29sZWFuPlxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJUHJvamVjdFNlbGVjdG9yID0gKHsgaGFuZGxlcnMsIG9uUmVzb2x2ZUNoYXQgfTogQ2hhdEFJUHJvamVjdFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZXRQcm9qZWN0LCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcblxuICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9XG4gICAgYWdlbnQ/LndlbGNvbWVfbWVzc2FnZT8ucmVwbGFjZSgvXFx7XFx7bmFtZVxcfVxcfS9nLCB1c2VyPy5maXJzdE5hbWUgPz8gJycpPy5yZXBsYWNlKC9cXFxcbi9nLCAnXFxuJykgPz8gJydcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0U2VsZWN0ZWQgPSBhc3luYyAoc2VsZWN0ZWRQcm9qZWN0OiBhbnkpID0+IHtcbiAgICBzZXRQcm9qZWN0KHNlbGVjdGVkUHJvamVjdClcbiAgICBpZiAob25SZXNvbHZlQ2hhdCAmJiBhZ2VudCAmJiBzZWxlY3RlZFByb2plY3Q/LmlkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG5hdmlnYXRlZCA9IGF3YWl0IG9uUmVzb2x2ZUNoYXQoYWdlbnQsIHNlbGVjdGVkUHJvamVjdC5pZClcbiAgICAgIGlmIChuYXZpZ2F0ZWQpIHJldHVyblxuICAgIH1cbiAgICBoYW5kbGVycygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXI+XG4gICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXI+XG4gICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JJY29uQ29udGFpbmVyPlxuICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50PlxuICAgICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSBzdHlsZT17eyB3aGl0ZVNwYWNlOiAncHJlLWxpbmUnIH19Pnt3ZWxjb21lTWVzc2FnZX08L1NDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgICAgIDxQcm9qZWN0U2VsZWN0b3Igb25Qcm9qZWN0U2VsZWN0ZWQ9e2hhbmRsZVByb2plY3RTZWxlY3RlZH0gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvckNvbnRlbnQ+XG4gICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGFpbmVyPlxuICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsZUFBZSxRQUFRLDZCQUE2QjtBQUM3RCxTQUNFQywyQkFBMkIsRUFDM0JDLDZCQUE2QixFQUM3QkMsaUNBQWlDLEVBQ2pDQywrQkFBK0IsRUFDL0JDLDJCQUEyQixFQUMzQkMsaUNBQWlDLEVBQ2pDQyx5QkFBeUIsRUFDekJDLDJCQUEyQixRQUN0QixnQ0FBZ0M7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLG1CQUFtQjtBQUMvQyxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWFuRCxPQUFPLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUFDLElBQUEsRUFBZ0U7RUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxlQUFBO0VBQUEsSUFBMURDLFFBQVEsR0FBQUosSUFBQSxDQUFSSSxRQUFRO0lBQUVDLGFBQWEsR0FBQUwsSUFBQSxDQUFiSyxhQUFhO0VBQzdELElBQUFDLGlCQUFBLEdBQThCdkIsZ0JBQWdCLENBQUMsQ0FBQztJQUF4Q3dCLFVBQVUsR0FBQUQsaUJBQUEsQ0FBVkMsVUFBVTtJQUFFQyxLQUFLLEdBQUFGLGlCQUFBLENBQUxFLEtBQUs7RUFDekIsSUFBTUMsSUFBSSxHQUFHZixPQUFPLENBQUMsQ0FBQztFQUV0QixJQUFNZ0IsY0FBYyxJQUFBVCxxQkFBQSxHQUNsQk8sS0FBSyxhQUFMQSxLQUFLLGdCQUFBTixzQkFBQSxHQUFMTSxLQUFLLENBQUVHLGVBQWUsY0FBQVQsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXRCQSxzQkFBQSxDQUF3QlUsT0FBTyxDQUFDLGVBQWUsR0FBQVQsZUFBQSxHQUFFTSxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRUksU0FBUyxjQUFBVixlQUFBLGNBQUFBLGVBQUEsR0FBSSxFQUFFLENBQUMsY0FBQUQsc0JBQUEsdUJBQXZFQSxzQkFBQSxDQUF5RVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBQVgscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0VBRXRHLElBQU1hLHFCQUFxQjtJQUFBLElBQUFDLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLGVBQW9CO01BQUEsSUFBQUMsU0FBQTtNQUFBLE9BQUFKLG1CQUFBLENBQUFLLElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1VBQUE7WUFDdkRsQixVQUFVLENBQUNhLGVBQWUsQ0FBQztZQUFBLE1BQ3ZCZixhQUFhLElBQUlHLEtBQUssSUFBSSxDQUFBWSxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRU0sRUFBRSxLQUFJLElBQUk7Y0FBQUgsUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtZQUFBRixRQUFBLENBQUFFLElBQUE7WUFBQSxPQUMvQnBCLGFBQWEsQ0FBQ0csS0FBSyxFQUFFWSxlQUFlLENBQUNNLEVBQUUsQ0FBQztVQUFBO1lBQTFETCxTQUFTLEdBQUFFLFFBQUEsQ0FBQUksSUFBQTtZQUFBLEtBQ1hOLFNBQVM7Y0FBQUUsUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFGLFFBQUEsQ0FBQUssTUFBQTtVQUFBO1lBRWZ4QixRQUFRLENBQUMsQ0FBQztVQUFBO1VBQUE7WUFBQSxPQUFBbUIsUUFBQSxDQUFBTSxJQUFBO1FBQUE7TUFBQSxHQUFBVixPQUFBO0lBQUEsQ0FDWDtJQUFBLGdCQVBLTCxxQkFBcUJBLENBQUFnQixFQUFBO01BQUEsT0FBQWYsS0FBQSxDQUFBZ0IsS0FBQSxPQUFBQyxTQUFBO0lBQUE7RUFBQSxHQU8xQjtFQUVELG9CQUNFcEMsSUFBQSxDQUFDWCwyQkFBMkI7SUFBQWdELFFBQUEsZUFDMUJuQyxLQUFBLENBQUNaLDZCQUE2QjtNQUFBK0MsUUFBQSxnQkFDNUJyQyxJQUFBLENBQUNULGlDQUFpQztRQUFBOEMsUUFBQSxlQUNoQ3JDLElBQUEsQ0FBQ1IsK0JBQStCO1VBQUE2QyxRQUFBLGVBQzlCckMsSUFBQSxDQUFDSCxXQUFXLElBQUU7UUFBQyxDQUNnQjtNQUFDLENBQ0QsQ0FBQyxlQUNwQ0ssS0FBQSxDQUFDVCwyQkFBMkI7UUFBQTRDLFFBQUEsZ0JBQzFCckMsSUFBQSxDQUFDTixpQ0FBaUM7VUFBQTJDLFFBQUEsZUFDaENyQyxJQUFBLENBQUNMLHlCQUF5QjtZQUFDMkMsS0FBSyxFQUFFO2NBQUVDLFVBQVUsRUFBRTtZQUFXLENBQUU7WUFBQUYsUUFBQSxFQUFFdkI7VUFBYyxDQUE0QjtRQUFDLENBQ3pFLENBQUMsZUFDcENkLElBQUEsQ0FBQ0osMkJBQTJCO1VBQUF5QyxRQUFBLGVBQzFCckMsSUFBQSxDQUFDWixlQUFlO1lBQUNvRCxpQkFBaUIsRUFBRXRCO1VBQXNCLENBQUU7UUFBQyxDQUNsQyxDQUFDO01BQUEsQ0FDSCxDQUFDO0lBQUEsQ0FDRDtFQUFDLENBQ0wsQ0FBQztBQUVsQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VHbG9iYWxDb250ZXh0IiwiUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3RvckxvZ29XcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50IiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSIsIlNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyIsIk1BSUFJc29sb2dvIiwidXNlVXNlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnMiIsIl91c2VyJGZpcnN0TmFtZSIsImhhbmRsZXJzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZXRQcm9qZWN0IiwiYWdlbnQiLCJ1c2VyIiwid2VsY29tZU1lc3NhZ2UiLCJ3ZWxjb21lX21lc3NhZ2UiLCJyZXBsYWNlIiwiZmlyc3ROYW1lIiwiaGFuZGxlUHJvamVjdFNlbGVjdGVkIiwic2VsZWN0ZWRQcm9qZWN0IiwiY2hpbGRyZW4iLCJzdHlsZSIsIndoaXRlU3BhY2UiLCJvblByb2plY3RTZWxlY3RlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlQcm9qZWN0U2VsZWN0b3IvQ2hhdEFJUHJvamVjdFNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFByb2plY3RTZWxlY3RvciB9IGZyb20gJy4uLy4uL2F0b21zL1Byb2plY3RTZWxlY3RvcidcbmltcG9ydCB7XG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9ySWNvbkNvbnRhaW5lcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50LFxuICBTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGUsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyxcbn0gZnJvbSAnLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3Iuc3R5bGVzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG50eXBlIENoYXRBSVByb2plY3RTZWxlY3RvclByb3BzID0ge1xuICBoYW5kbGVyczogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJUHJvamVjdFNlbGVjdG9yID0gKHsgaGFuZGxlcnMgfTogQ2hhdEFJUHJvamVjdFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZXRQcm9qZWN0LCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcblxuICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9XG4gICAgYWdlbnQ/LndlbGNvbWVfbWVzc2FnZT8ucmVwbGFjZSgvXFx7XFx7bmFtZVxcfVxcfS9nLCB1c2VyPy5maXJzdE5hbWUgPz8gJycpPy5yZXBsYWNlKC9cXFxcbi9nLCAnXFxuJykgPz8gJydcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0U2VsZWN0ZWQgPSAoc2VsZWN0ZWRQcm9qZWN0OiBhbnkpID0+IHtcbiAgICBzZXRQcm9qZWN0KHNlbGVjdGVkUHJvamVjdClcbiAgICBoYW5kbGVycygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXI+XG4gICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXI+XG4gICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JJY29uQ29udGFpbmVyPlxuICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50PlxuICAgICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSBzdHlsZT17eyB3aGl0ZVNwYWNlOiAncHJlLWxpbmUnIH19Pnt3ZWxjb21lTWVzc2FnZX08L1NDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgICAgIDxQcm9qZWN0U2VsZWN0b3Igb25Qcm9qZWN0U2VsZWN0ZWQ9e2hhbmRsZVByb2plY3RTZWxlY3RlZH0gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvckNvbnRlbnQ+XG4gICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGFpbmVyPlxuICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FDRUMsMkJBQTJCLEVBQzNCQyw2QkFBNkIsRUFDN0JDLGlDQUFpQyxFQUNqQ0MsK0JBQStCLEVBQy9CQywyQkFBMkIsRUFDM0JDLGlDQUFpQyxFQUNqQ0MseUJBQXlCLEVBQ3pCQywyQkFBMkIsUUFDdEIsZ0NBQWdDO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFNbkQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBQyxJQUFBLEVBQWlEO0VBQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMsZUFBQTtFQUFBLElBQTNDQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtFQUM5QyxJQUFBQyxpQkFBQSxHQUE4QnRCLGdCQUFnQixDQUFDLENBQUM7SUFBeEN1QixVQUFVLEdBQUFELGlCQUFBLENBQVZDLFVBQVU7SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0VBQ3pCLElBQU1DLElBQUksR0FBR2QsT0FBTyxDQUFDLENBQUM7RUFFdEIsSUFBTWUsY0FBYyxJQUFBUixxQkFBQSxHQUNsQk0sS0FBSyxhQUFMQSxLQUFLLGdCQUFBTCxzQkFBQSxHQUFMSyxLQUFLLENBQUVHLGVBQWUsY0FBQVIsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXRCQSxzQkFBQSxDQUF3QlMsT0FBTyxDQUFDLGVBQWUsR0FBQVIsZUFBQSxHQUFFSyxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRUksU0FBUyxjQUFBVCxlQUFBLGNBQUFBLGVBQUEsR0FBSSxFQUFFLENBQUMsY0FBQUQsc0JBQUEsdUJBQXZFQSxzQkFBQSxDQUF5RVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBQVYscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0VBRXRHLElBQU1ZLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLGVBQW9CLEVBQUs7SUFDdERSLFVBQVUsQ0FBQ1EsZUFBZSxDQUFDO0lBQzNCVixRQUFRLENBQUMsQ0FBQztFQUNaLENBQUM7RUFFRCxvQkFDRVIsSUFBQSxDQUFDWCwyQkFBMkI7SUFBQThCLFFBQUEsZUFDMUJqQixLQUFBLENBQUNaLDZCQUE2QjtNQUFBNkIsUUFBQSxnQkFDNUJuQixJQUFBLENBQUNULGlDQUFpQztRQUFBNEIsUUFBQSxlQUNoQ25CLElBQUEsQ0FBQ1IsK0JBQStCO1VBQUEyQixRQUFBLGVBQzlCbkIsSUFBQSxDQUFDSCxXQUFXLElBQUU7UUFBQyxDQUNnQjtNQUFDLENBQ0QsQ0FBQyxlQUNwQ0ssS0FBQSxDQUFDVCwyQkFBMkI7UUFBQTBCLFFBQUEsZ0JBQzFCbkIsSUFBQSxDQUFDTixpQ0FBaUM7VUFBQXlCLFFBQUEsZUFDaENuQixJQUFBLENBQUNMLHlCQUF5QjtZQUFDeUIsS0FBSyxFQUFFO2NBQUVDLFVBQVUsRUFBRTtZQUFXLENBQUU7WUFBQUYsUUFBQSxFQUFFTjtVQUFjLENBQTRCO1FBQUMsQ0FDekUsQ0FBQyxlQUNwQ2IsSUFBQSxDQUFDSiwyQkFBMkI7VUFBQXVCLFFBQUEsZUFDMUJuQixJQUFBLENBQUNaLGVBQWU7WUFBQ2tDLGlCQUFpQixFQUFFTDtVQUFzQixDQUFFO1FBQUMsQ0FDbEMsQ0FBQztNQUFBLENBQ0gsQ0FBQztJQUFBLENBQ0Q7RUFBQyxDQUNMLENBQUM7QUFFbEMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==