@projectcor/maia-components 2.11.26-5 → 2.11.26-7

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 (54) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +25 -55
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +47 -46
  3. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +2 -2
  4. package/lib/components/atoms/icons/ChatConversation.js +40 -0
  5. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  6. package/lib/components/atoms/icons/index.js +3 -1
  7. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +16 -3
  8. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +54 -44
  9. package/lib/components/molecules/ChatAIHome/styles.js +43 -35
  10. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +55 -39
  11. package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.js +43 -0
  12. package/lib/components/molecules/ChatAIMessages/ChatDaySeparator.styles.js +11 -0
  13. package/lib/components/molecules/ChatAIMessages/chatMessageUtils.js +5 -0
  14. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +199 -71
  15. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -15
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +81 -16
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +16 -1
  18. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +13 -0
  19. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +9 -0
  20. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  21. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  22. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  23. package/lib/components/molecules/ChatAIModal/layout.js +35 -0
  24. package/lib/components/molecules/Sidebar/Sidebar.js +257 -322
  25. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +18 -23
  26. package/lib/components/molecules/Sidebar/Sidebar.styles.js +54 -37
  27. package/lib/components/molecules/Sidebar/SidebarChats.styles.js +73 -0
  28. package/lib/components/molecules/Sidebar/SidebarChatsSection.js +69 -0
  29. package/lib/components/molecules/Sidebar/SidebarChatsSectionModal.js +151 -0
  30. package/lib/components/molecules/Sidebar/SidebarHistoryChat.js +238 -0
  31. package/lib/components/molecules/Sidebar/sidebarChats.helpers.js +70 -0
  32. package/lib/components/molecules/Sidebar/sidebarChats.types.js +14 -0
  33. package/lib/dev/Providers.js +2 -2
  34. package/lib/dev/fixtures/devUser.js +173 -0
  35. package/lib/dev/fixtures/mockedUser.js +169 -0
  36. package/lib/hooks/useChatManager/useChatManager.js +3 -25
  37. package/lib/hooks/useChats/useChats.js +12 -4
  38. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -33
  39. package/lib/lang/br/index.js +19 -2
  40. package/lib/lang/en/index.js +19 -2
  41. package/lib/lang/es/index.js +19 -2
  42. package/lib/lang/fr/index.js +19 -2
  43. package/lib/services/maia/Chats/getChatMessagesV2.js +114 -0
  44. package/lib/services/maia/Chats/getChatsByUserId.js +14 -8
  45. package/lib/services/maia/Chats/getSessionsGroupedV2.js +70 -0
  46. package/lib/services/maia/Chats/index.js +5 -1
  47. package/lib/services/maia/client.js +44 -9
  48. package/lib/store/chatsStore.types.js +10 -2
  49. package/lib/store/useChatsStore.js +75 -37
  50. package/lib/types/Chat.js +3 -1
  51. package/package.json +1 -1
  52. package/lib/hooks/useOrchestratorStream/streamRevealSmooth.js +0 -57
  53. package/lib/mocks/mockChats.js +0 -395
  54. package/lib/mocks/mockedUser.js +0 -169
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
8
8
  /* eslint-disable react/function-component-definition */
9
- import { memo, useState } from 'react';
9
+ import { memo, useEffect, useState } from 'react';
10
10
  import colors from '@projectcor/theme/lib/base/colors';
11
11
  import { History } from '@projectcor/icons/lib/components/History';
12
12
  import { Pencil } from '@projectcor/icons/lib/components/Pencil';
@@ -19,6 +19,7 @@ import { EmptyState } from '../../atoms/icons/EmptyState';
19
19
  import { MODAL_ELEMENTS } from '../../../hooks/useModal/useModal';
20
20
  import { GoBackButton } from '../../atoms/GoBackButton';
21
21
  import { useChats } from '../../../hooks/useChats';
22
+ import { SECTION_MODAL_SESSIONS_PAGE_LIMIT, SIDEBAR_SESSIONS_PAGE_LIMIT } from '../../../store/chatsStore.types';
22
23
  import { Loader } from '../../atoms/Loader';
23
24
  import { EditableLabel } from '../../atoms/EditableLabel';
24
25
  import { NextPageLoader } from '../../atoms/NextPageLoader';
@@ -147,7 +148,19 @@ export var ChatAIHistory = function ChatAIHistory(_ref4) {
147
148
  updateChat = _useChats.updateChat,
148
149
  hasMoreChats = _useChats.hasMoreChats,
149
150
  loadMoreChats = _useChats.loadMoreChats,
150
- isLoadingMoreChats = _useChats.isLoadingMoreChats;
151
+ isLoadingMoreChats = _useChats.isLoadingMoreChats,
152
+ fetchChats = _useChats.fetchChats,
153
+ limit = _useChats.limit;
154
+ useEffect(function () {
155
+ if (loadingChats || limit !== SIDEBAR_SESSIONS_PAGE_LIMIT || chats.length === 0) {
156
+ return;
157
+ }
158
+ fetchChats({
159
+ limit: SECTION_MODAL_SESSIONS_PAGE_LIMIT,
160
+ offset: 0,
161
+ showGlobalLoader: false
162
+ });
163
+ }, [loadingChats, limit, chats.length, fetchChats]);
151
164
  var handleGoBack = function handleGoBack() {
152
165
  event(EVENTS.pmAiBackButton);
153
166
  onGoToHome();
@@ -224,4 +237,4 @@ export var ChatAIHistory = function ChatAIHistory(_ref4) {
224
237
  })]
225
238
  });
226
239
  };
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlU3RhdGUiLCJjb2xvcnMiLCJIaXN0b3J5IiwiUGVuY2lsIiwiVHJhc2giLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDYXJkTWVudSIsIk1vZGFsSW5mb0NvbnRlbnQiLCJFbXB0eVN0YXRlIiwiTU9EQUxfRUxFTUVOVFMiLCJHb0JhY2tCdXR0b24iLCJ1c2VDaGF0cyIsIkxvYWRlciIsIkVkaXRhYmxlTGFiZWwiLCJOZXh0UGFnZUxvYWRlciIsIkxvYWRpbmdUZXh0IiwiZm9ybWF0RGF0ZSIsIlNDQ0FJSGlzdG9yeVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEl0ZW0iLCJfcmVmIiwiY2hhdCIsInVwZGF0ZUNoYXQiLCJkZWxldGVDaGF0Iiwib25Hb1RvQ2hhdCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2siLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJfcmVmMiIsInN0YXJ0TG9hZGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVTYXZlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInRpdGxlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfb2JqZWN0U3ByZWFkIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVHb1RvQ2hhdCIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiZ2FwIiwiZmxleEdyb3ciLCJjb2xvciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInZhbHVlIiwib25TYXZlIiwib25DYW5jZWwiLCJkYXRlIiwiQ2hhdEFJSGlzdG9yeSIsIl9yZWY0Iiwib25FcnJvciIsIm9uR29Ub0hvbWUiLCJfdXNlVDIiLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJoYW5kbGVHb0JhY2siLCJwbUFpQmFja0J1dHRvbiIsImxlbmd0aCIsImRlc2NyaXB0aW9uIiwid2lkdGgiLCJwYWRkaW5nIiwiYWxpZ25JdGVtcyIsInRleHQiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwib3ZlcmZsb3dZIiwib3ZlcnNjcm9sbEJlaGF2aW9yWSIsIm1hcCIsImxpc3RTdHlsZSIsImlkIiwibG9hZE1vcmUiLCJqdXN0aWZ5Q29udGVudCIsImNsYXNzTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIaXN0b3J5L0NoYXRBSUhpc3RvcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBDYXJkTWVudSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51J1xuaW1wb3J0IHsgTW9kYWxJbmZvQ29udGVudCB9IGZyb20gJy4uLy4uL2F0b21zL01vZGFsSW5mbydcbmltcG9ydCB7IEVtcHR5U3RhdGUgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcbmltcG9ydCB7IEdvQmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0dvQmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBDaGF0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEVkaXRhYmxlTGFiZWwgfSBmcm9tICcuLi8uLi9hdG9tcy9FZGl0YWJsZUxhYmVsJ1xuaW1wb3J0IHsgTmV4dFBhZ2VMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9OZXh0UGFnZUxvYWRlcidcbmltcG9ydCB7IExvYWRpbmdUZXh0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGluZ1RleHQnXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IFNDQ0FJSGlzdG9yeVdyYXBwZXIgfSBmcm9tICcuL3N0eWxlcydcblxudHlwZSBDaGF0QUlIaXN0b3J5UHJvcHMgPSB7XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25Hb1RvSG9tZTogKCkgPT4gdm9pZFxuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBDaGF0SXRlbVByb3BzID0ge1xuICBjaGF0OiBhbnlcbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IENoYXQpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uR29Ub0NoYXQ6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxufVxuXG5jb25zdCBDaGF0SXRlbSA9IG1lbW8oKHsgY2hhdCwgdXBkYXRlQ2hhdCwgZGVsZXRlQ2hhdCwgb25Hb1RvQ2hhdCB9OiBDaGF0SXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbZWRpdGluZywgc2V0RWRpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHNldEVkaXRpbmcodHJ1ZSksXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrOiAoeyBzdGFydExvYWRpbmcgfSkgPT4ge1xuICAgICAgICBzdGFydExvYWRpbmcoKVxuICAgICAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB1cGRhdGVDaGF0KHsgLi4uY2hhdCwgdGl0bGUgfSlcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlR29Ub0NoYXQgPSAoKSA9PiB7XG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvbkdvVG9DaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlPcGVuQ29udmVyc2F0aW9uKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyA8U3R5bGVkQ2hhdEFJSGlzdG9yeUl0ZW0gb25DbGljaz17aGFuZGxlR29Ub0NoYXR9IGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9PlxuICAgIC8vICAgPGRpdiBjbGFzc05hbWU9XCJDaGF0QUlIaXN0b3J5SXRlbS1jb250ZW50XCI+XG4gICAgLy8gICAgIDxFZGl0YWJsZUxhYmVsIGVkaXRpbmc9e2VkaXRpbmd9IHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAvLyAgICAgPHNwYW4+e3QoJ2hpc3RvcnkuaXRlbS5kYXRlJywgeyBkYXRlOiBmb3JtYXREYXRlKGNoYXQuZGF0ZSkgfSl9PC9zcGFuPlxuICAgIC8vICAgPC9kaXY+XG4gICAgLy8gICB7IWVkaXRpbmcgJiYgPENhcmRNZW51IG1lbnVJdGVtcz17bWVudUl0ZW1zfSBpZD17Y2hhdC5pZH0gY2xhc3NOYW1lPXttZW51Q2xhc3NOYW1lfSAvPn1cbiAgICAvLyA8L1N0eWxlZENoYXRBSUhpc3RvcnlJdGVtPlxuICAgIDxTQ0NBSUhpc3RvcnlXcmFwcGVyIG9uQ2xpY2s9e2hhbmRsZUdvVG9DaGF0fT5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMTZweCcsIGZsZXhHcm93OiAxIH19PlxuICAgICAgICB7IWVkaXRpbmcgPyAoXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJywgZm9udFNpemU6ICcxNHB4JywgbGluZUhlaWdodDogJzE0MCUnIH19PntjaGF0LnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RWRpdGFibGVMYWJlbCBlZGl0aW5nIHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDEpJywgZm9udFNpemU6ICcxMnB4JywgbGluZUhlaWdodDogJzEzMCUnIH19PlxuICAgICAgICAgIHt0KCdoaXN0b3J5Lml0ZW0uZGF0ZScsIHsgZGF0ZTogZm9ybWF0RGF0ZShjaGF0LmRhdGUpIH0pfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIHshZWRpdGluZyAmJiA8Q2FyZE1lbnUgbWVudUl0ZW1zPXttZW51SXRlbXN9IC8+fVxuICAgIDwvU0NDQUlIaXN0b3J5V3JhcHBlcj5cbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IENoYXRBSUhpc3RvcnkgPSAoeyBvbkVycm9yLCBvbkdvVG9Ib21lLCBvbkdvVG9DaGF0IH06IENoYXRBSUhpc3RvcnlQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCB7IGxvYWRpbmdDaGF0cywgY2hhdHMsIGRlbGV0ZUNoYXQsIHVwZGF0ZUNoYXQsIGhhc01vcmVDaGF0cywgbG9hZE1vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCBoYW5kbGVHb0JhY2sgPSAoKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLnBtQWlCYWNrQnV0dG9uKVxuICAgIG9uR29Ub0hvbWUoKVxuICB9XG5cbiAgaWYgKGxvYWRpbmdDaGF0cykge1xuICAgIHJldHVybiA8TG9hZGVyIC8+XG4gIH1cblxuICBpZiAoIWNoYXRzLmxlbmd0aCkge1xuICAgIHJldHVybiAoXG4gICAgICA8TW9kYWxJbmZvQ29udGVudCB0aXRsZT17dCgnaGlzdG9yeS50aXRsZScpfSBkZXNjcmlwdGlvbj17dCgnaGlzdG9yeS5kZXNjcmlwdGlvbicpfT5cbiAgICAgICAgPEVtcHR5U3RhdGUgLz5cbiAgICAgIDwvTW9kYWxJbmZvQ29udGVudD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nOiAnMTZweCAyNHB4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogJzI0cHgnIH19PlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc4cHgnIH19PlxuICAgICAgICA8SGlzdG9yeSBjb2xvcj17Y29sb3JzLnRleHQucHJpbWFyeX0gaGVpZ2h0PXsyMH0gd2lkdGg9ezIwfSAvPlxuICAgICAgICA8c3Bhbj57dCgnaGlzdG9yeS50b29sdGlwJyl9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIGdhcDogJzE2cHgnLFxuICAgICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICAgIG92ZXJzY3JvbGxCZWhhdmlvclk6ICdjb250YWluJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2NoYXRzLm1hcChjaGF0ID0+IChcbiAgICAgICAgICA8bGkga2V5PXtjaGF0LmlkfSBzdHlsZT17eyBsaXN0U3R5bGU6ICdub25lJyB9fT5cbiAgICAgICAgICAgIDxDaGF0SXRlbSBjaGF0PXtjaGF0fSB1cGRhdGVDaGF0PXt1cGRhdGVDaGF0fSBkZWxldGVDaGF0PXtkZWxldGVDaGF0fSBvbkdvVG9DaGF0PXtvbkdvVG9DaGF0fSAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICkpfVxuICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdoaXN0b3J5LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAgICB7IWlzTG9hZGluZ01vcmVDaGF0cyAmJiBoYXNNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxOZXh0UGFnZUxvYWRlciBsb2FkTW9yZT17bG9hZE1vcmVDaGF0c30gLz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICA8R29CYWNrQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZUdvQmFja30gY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU30gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQSxTQUFTQSxJQUFJLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsT0FBTyxRQUFRLDBDQUEwQztBQUNsRSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFFOUQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFFMUQsU0FBU0MsUUFBUSxRQUFRLHNCQUFzQjtBQUMvQyxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFDeEQsU0FBU0Ms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
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb2xvcnMiLCJIaXN0b3J5IiwiUGVuY2lsIiwiVHJhc2giLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJDYXJkTWVudSIsIk1vZGFsSW5mb0NvbnRlbnQiLCJFbXB0eVN0YXRlIiwiTU9EQUxfRUxFTUVOVFMiLCJHb0JhY2tCdXR0b24iLCJ1c2VDaGF0cyIsIlNFQ1RJT05fTU9EQUxfU0VTU0lPTlNfUEFHRV9MSU1JVCIsIlNJREVCQVJfU0VTU0lPTlNfUEFHRV9MSU1JVCIsIkxvYWRlciIsIkVkaXRhYmxlTGFiZWwiLCJOZXh0UGFnZUxvYWRlciIsIkxvYWRpbmdUZXh0IiwiZm9ybWF0RGF0ZSIsIlNDQ0FJSGlzdG9yeVdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEl0ZW0iLCJfcmVmIiwiY2hhdCIsInVwZGF0ZUNoYXQiLCJkZWxldGVDaGF0Iiwib25Hb1RvQ2hhdCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2siLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJfcmVmMiIsInN0YXJ0TG9hZGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVTYXZlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInRpdGxlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJfb2JqZWN0U3ByZWFkIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVHb1RvQ2hhdCIsInBtQWlPcGVuQ29udmVyc2F0aW9uIiwiY2hpbGRyZW4iLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiZ2FwIiwiZmxleEdyb3ciLCJjb2xvciIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInZhbHVlIiwib25TYXZlIiwib25DYW5jZWwiLCJkYXRlIiwiQ2hhdEFJSGlzdG9yeSIsIl9yZWY0Iiwib25FcnJvciIsIm9uR29Ub0hvbWUiLCJfdXNlVDIiLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJmZXRjaENoYXRzIiwibGltaXQiLCJsZW5ndGgiLCJvZmZzZXQiLCJzaG93R2xvYmFsTG9hZGVyIiwiaGFuZGxlR29CYWNrIiwicG1BaUJhY2tCdXR0b24iLCJkZXNjcmlwdGlvbiIsIndpZHRoIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJ0ZXh0IiwicHJpbWFyeSIsImhlaWdodCIsIm92ZXJmbG93WSIsIm92ZXJzY3JvbGxCZWhhdmlvclkiLCJtYXAiLCJsaXN0U3R5bGUiLCJpZCIsImxvYWRNb3JlIiwianVzdGlmeUNvbnRlbnQiLCJjbGFzc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJSGlzdG9yeS9DaGF0QUlIaXN0b3J5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSGlzdG9yeSdcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBDYXJkTWVudSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51J1xuaW1wb3J0IHsgTW9kYWxJbmZvQ29udGVudCB9IGZyb20gJy4uLy4uL2F0b21zL01vZGFsSW5mbydcbmltcG9ydCB7IEVtcHR5U3RhdGUgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcbmltcG9ydCB7IEdvQmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0dvQmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBTRUNUSU9OX01PREFMX1NFU1NJT05TX1BBR0VfTElNSVQsIFNJREVCQVJfU0VTU0lPTlNfUEFHRV9MSU1JVCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBDaGF0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IEVkaXRhYmxlTGFiZWwgfSBmcm9tICcuLi8uLi9hdG9tcy9FZGl0YWJsZUxhYmVsJ1xuaW1wb3J0IHsgTmV4dFBhZ2VMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9OZXh0UGFnZUxvYWRlcidcbmltcG9ydCB7IExvYWRpbmdUZXh0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGluZ1RleHQnXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IFNDQ0FJSGlzdG9yeVdyYXBwZXIgfSBmcm9tICcuL3N0eWxlcydcblxudHlwZSBDaGF0QUlIaXN0b3J5UHJvcHMgPSB7XG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25Hb1RvSG9tZTogKCkgPT4gdm9pZFxuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBDaGF0SXRlbVByb3BzID0ge1xuICBjaGF0OiBhbnlcbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IENoYXQpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uR29Ub0NoYXQ6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxufVxuXG5jb25zdCBDaGF0SXRlbSA9IG1lbW8oKHsgY2hhdCwgdXBkYXRlQ2hhdCwgZGVsZXRlQ2hhdCwgb25Hb1RvQ2hhdCB9OiBDaGF0SXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbZWRpdGluZywgc2V0RWRpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHNldEVkaXRpbmcodHJ1ZSksXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrOiAoeyBzdGFydExvYWRpbmcgfSkgPT4ge1xuICAgICAgICBzdGFydExvYWRpbmcoKVxuICAgICAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB1cGRhdGVDaGF0KHsgLi4uY2hhdCwgdGl0bGUgfSlcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlR29Ub0NoYXQgPSAoKSA9PiB7XG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvbkdvVG9DaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlPcGVuQ29udmVyc2F0aW9uKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICAvLyA8U3R5bGVkQ2hhdEFJSGlzdG9yeUl0ZW0gb25DbGljaz17aGFuZGxlR29Ub0NoYXR9IGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9PlxuICAgIC8vICAgPGRpdiBjbGFzc05hbWU9XCJDaGF0QUlIaXN0b3J5SXRlbS1jb250ZW50XCI+XG4gICAgLy8gICAgIDxFZGl0YWJsZUxhYmVsIGVkaXRpbmc9e2VkaXRpbmd9IHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAvLyAgICAgPHNwYW4+e3QoJ2hpc3RvcnkuaXRlbS5kYXRlJywgeyBkYXRlOiBmb3JtYXREYXRlKGNoYXQuZGF0ZSkgfSl9PC9zcGFuPlxuICAgIC8vICAgPC9kaXY+XG4gICAgLy8gICB7IWVkaXRpbmcgJiYgPENhcmRNZW51IG1lbnVJdGVtcz17bWVudUl0ZW1zfSBpZD17Y2hhdC5pZH0gY2xhc3NOYW1lPXttZW51Q2xhc3NOYW1lfSAvPn1cbiAgICAvLyA8L1N0eWxlZENoYXRBSUhpc3RvcnlJdGVtPlxuICAgIDxTQ0NBSUhpc3RvcnlXcmFwcGVyIG9uQ2xpY2s9e2hhbmRsZUdvVG9DaGF0fT5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMTZweCcsIGZsZXhHcm93OiAxIH19PlxuICAgICAgICB7IWVkaXRpbmcgPyAoXG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJywgZm9udFNpemU6ICcxNHB4JywgbGluZUhlaWdodDogJzE0MCUnIH19PntjaGF0LnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RWRpdGFibGVMYWJlbCBlZGl0aW5nIHZhbHVlPXtjaGF0LnRpdGxlfSBvblNhdmU9e2hhbmRsZVNhdmV9IG9uQ2FuY2VsPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDEpJywgZm9udFNpemU6ICcxMnB4JywgbGluZUhlaWdodDogJzEzMCUnIH19PlxuICAgICAgICAgIHt0KCdoaXN0b3J5Lml0ZW0uZGF0ZScsIHsgZGF0ZTogZm9ybWF0RGF0ZShjaGF0LmRhdGUpIH0pfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIHshZWRpdGluZyAmJiA8Q2FyZE1lbnUgbWVudUl0ZW1zPXttZW51SXRlbXN9IC8+fVxuICAgIDwvU0NDQUlIaXN0b3J5V3JhcHBlcj5cbiAgKVxufSlcblxuZXhwb3J0IGNvbnN0IENoYXRBSUhpc3RvcnkgPSAoeyBvbkVycm9yLCBvbkdvVG9Ib21lLCBvbkdvVG9DaGF0IH06IENoYXRBSUhpc3RvcnlQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcblxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gICAgZmV0Y2hDaGF0cyxcbiAgICBsaW1pdCxcbiAgfSA9IHVzZUNoYXRzKHtcbiAgICBvbkVycm9yLFxuICB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmdDaGF0cyB8fCBsaW1pdCAhPT0gU0lERUJBUl9TRVNTSU9OU19QQUdFX0xJTUlUIHx8IGNoYXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZldGNoQ2hhdHMoeyBsaW1pdDogU0VDVElPTl9NT0RBTF9TRVNTSU9OU19QQUdFX0xJTUlULCBvZmZzZXQ6IDAsIHNob3dHbG9iYWxMb2FkZXI6IGZhbHNlIH0pXG4gIH0sIFtsb2FkaW5nQ2hhdHMsIGxpbWl0LCBjaGF0cy5sZW5ndGgsIGZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IGhhbmRsZUdvQmFjayA9ICgpID0+IHtcbiAgICBldmVudChFVkVOVFMucG1BaUJhY2tCdXR0b24pXG4gICAgb25Hb1RvSG9tZSgpXG4gIH1cblxuICBpZiAobG9hZGluZ0NoYXRzKSB7XG4gICAgcmV0dXJuIDxMb2FkZXIgLz5cbiAgfVxuXG4gIGlmICghY2hhdHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNb2RhbEluZm9Db250ZW50IHRpdGxlPXt0KCdoaXN0b3J5LnRpdGxlJyl9IGRlc2NyaXB0aW9uPXt0KCdoaXN0b3J5LmRlc2NyaXB0aW9uJyl9PlxuICAgICAgICA8RW1wdHlTdGF0ZSAvPlxuICAgICAgPC9Nb2RhbEluZm9Db250ZW50PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIHdpZHRoOiAnMTAwJScsIHBhZGRpbmc6ICcxNnB4IDI0cHgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAnMjRweCcgfX0+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzhweCcgfX0+XG4gICAgICAgIDxIaXN0b3J5IGNvbG9yPXtjb2xvcnMudGV4dC5wcmltYXJ5fSBoZWlnaHQ9ezIwfSB3aWR0aD17MjB9IC8+XG4gICAgICAgIDxzcGFuPnt0KCdoaXN0b3J5LnRvb2x0aXAnKX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgZ2FwOiAnMTZweCcsXG4gICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWTogJ2NvbnRhaW4nLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7Y2hhdHMubWFwKGNoYXQgPT4gKFxuICAgICAgICAgIDxsaSBrZXk9e2NoYXQuaWR9IHN0eWxlPXt7IGxpc3RTdHlsZTogJ25vbmUnIH19PlxuICAgICAgICAgICAgPENoYXRJdGVtIGNoYXQ9e2NoYXR9IHVwZGF0ZUNoYXQ9e3VwZGF0ZUNoYXR9IGRlbGV0ZUNoYXQ9e2RlbGV0ZUNoYXR9IG9uR29Ub0NoYXQ9e29uR29Ub0NoYXR9IC8+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKSl9XG4gICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgPExvYWRpbmdUZXh0IHRleHQ9e3QoJ2hpc3RvcnkubG9hZGluZ01vcmUnKX0gLz59XG4gICAgICAgIHshaXNMb2FkaW5nTW9yZUNoYXRzICYmIGhhc01vcmVDaGF0cyAmJiAoXG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPE5leHRQYWdlTG9hZGVyIGxvYWRNb3JlPXtsb2FkTW9yZUNoYXRzfSAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgIDxHb0JhY2tCdXR0b24gb25DbGljaz17aGFuZGxlR29CYWNrfSBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNqRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLE9BQU8sUUFBUSwwQ0FBMEM7QUFDbEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBRTlELFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBRTFELFNBQVNDLFFBQVEsUUFBUSxzQkFBc0I7QUFDL0MsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLFVBQVUsUUFBUSw4QkFBOEI7QUFDekQsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQztBQUNqRSxTQUFTQyxZQUFZLFFBQVEsMEJBQTBCO0FBQ3ZELFNBQVNDLFFBQVEsUUFBUSx5QkFBeUI7QUFDbEQsU0FBU0MsaUNBQWlDLEVBQUVDLDJCQUEyQixRQUFRLGlDQUFpQztBQUNoSCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBRTNDLFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLFVBQVUsUUFB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
@@ -5,7 +5,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
6
6
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
7
7
  import { useT } from '../../../hooks/useT';
8
- import { SCCAIHomeContainer, SCCAIHomeContent, SCCAIHomeContentInner, SCCAIHomeGradientTop, SCCAIHomeGradientBottom, SCCAIHomeHeader, SCCAIHomeGreeting, SCCAIHomeAgentInfoContainer, SCCAIHomeAgentInfo, SCCAIHomeProjectSummary, SCCAIHomeProjectSummaryContent, SCCAIHomeProjectSummaryTitle, SCCAIHomeProjectSummaryDescription, SCCAHWrapperSummaryProject, SCCAIHomeIntroduction, SCCAIHomeCreatedByContainer, SCCAIHomeCreatedByText, SCCAIHomeCreatedByTextName, SCCAIHomeIconContainer, SCCAIHomeLogoWrapper, SCCAIHomeMaiaHeaderStack } from './styles';
8
+ import { SCCAIHomeContainer, SCCAIHomeContent, SCCAIHomeScrollArea, SCCAIHomeScrollBody, SCCAIHomeContentInner, SCCAIHomeGradientTop, SCCAIHomeGradientBottom, SCCAIHomeHeader, SCCAIHomeGreeting, SCCAIHomeAgentInfoContainer, SCCAIHomeAgentInfo, SCCAIHomeProjectSummary, SCCAIHomeProjectSummaryContent, SCCAIHomeProjectSummaryTitle, SCCAIHomeProjectSummaryDescription, SCCAHWrapperSummaryProject, SCCAIHomeIntroduction, SCCAIHomeCreatedByContainer, SCCAIHomeCreatedByText, SCCAIHomeCreatedByTextName, SCCAIHomeIconContainer, SCCAIHomeLogoWrapper, SCCAIHomeMaiaHeaderStack } from './styles';
9
9
  import { useGlobalContext } from '../../../context/global-context';
10
10
  import { validateIsMaia } from '../../../services/utils/validateIsMaia';
11
11
  import { FrequentlyAskedQuestions } from '../../atoms/FrequentlyAskedQuestions';
@@ -37,7 +37,7 @@ export var ChatAIHome = function ChatAIHome(_ref) {
37
37
  var showFAQs = !!(isMAIA && faqsAccess && !isMaiaker);
38
38
  var homeScrollableLayout = showFAQs || isMaiaker;
39
39
 
40
- // Lógica del scroll con gradientes
40
+ // Lógica del scroll con gradientes (overlay fijo al viewport del scroll, no sticky en el flujo)
41
41
  var contentContainerRef = useRef(null);
42
42
  var _useState = useState(false),
43
43
  _useState2 = _slicedToArray(_useState, 2),
@@ -94,9 +94,14 @@ export var ChatAIHome = function ChatAIHome(_ref) {
94
94
  }
95
95
  checkScroll();
96
96
  container.addEventListener('scroll', checkScroll);
97
+ var resizeObserver = new ResizeObserver(function () {
98
+ return checkScroll();
99
+ });
100
+ resizeObserver.observe(container);
97
101
  var timeoutId = setTimeout(checkScroll, 100);
98
102
  return function () {
99
103
  container.removeEventListener('scroll', checkScroll);
104
+ resizeObserver.disconnect();
100
105
  clearTimeout(timeoutId);
101
106
  if (scrollTimeoutRef.current) {
102
107
  clearTimeout(scrollTimeoutRef.current);
@@ -132,53 +137,58 @@ export var ChatAIHome = function ChatAIHome(_ref) {
132
137
  }) : null]
133
138
  });
134
139
  };
140
+ var homeBody = /*#__PURE__*/_jsxs(SCCAIHomeContentInner, {
141
+ showFAQs: homeScrollableLayout,
142
+ $isAgentView: !isMAIA,
143
+ children: [/*#__PURE__*/_jsxs(SCCAIHomeHeader, {
144
+ $gap: isMAIA && section !== 'project' ? '8px' : '20px',
145
+ $maxWidth: isMAIA ? '100%' : '380px',
146
+ $isAgentView: !isMAIA,
147
+ children: [renderHeaderContent(), section !== 'project' && /*#__PURE__*/_jsx(SCCAIHomeIntroduction, {
148
+ expanded: expanded,
149
+ children: !isMAIA && (agent === null || agent === void 0 ? void 0 : agent.introduction)
150
+ })]
151
+ }), showProjectSummary && (agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
152
+ onClick: handlers.projectSummary,
153
+ children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummary, {
154
+ children: /*#__PURE__*/_jsx(TemplateGradientIcon, {
155
+ height: 24,
156
+ width: 24
157
+ })
158
+ }), /*#__PURE__*/_jsxs(SCCAIHomeProjectSummaryContent, {
159
+ children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummaryTitle, {
160
+ children: t('homeMenu.projectSummary.title')
161
+ }), /*#__PURE__*/_jsx(SCCAIHomeProjectSummaryDescription, {
162
+ children: t('homeMenu.projectSummary.description')
163
+ })]
164
+ })]
165
+ }), showFAQs && /*#__PURE__*/_jsx(FrequentlyAskedQuestions, {
166
+ onStartChat: onStartChat,
167
+ showFAQs: showFAQs,
168
+ showProjectSummary: showProjectSummary,
169
+ agentId: agent === null || agent === void 0 ? void 0 : agent.id,
170
+ lang: lang,
171
+ isScrolling: isScrolling
172
+ }), isMaiaker ? /*#__PURE__*/_jsx(ChatAIHomeMaiaker, {
173
+ onStartChat: onStartChat
174
+ }) : null]
175
+ });
135
176
  return /*#__PURE__*/_jsx(SCCAIHomeContainer, {
136
177
  showFAQs: showFAQs,
137
- children: /*#__PURE__*/_jsxs(SCCAIHomeContent, {
138
- ref: contentContainerRef,
139
- showFAQs: homeScrollableLayout,
140
- $isAgentView: !isMAIA,
141
- children: [homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
178
+ children: homeScrollableLayout ? /*#__PURE__*/_jsxs(SCCAIHomeScrollArea, {
179
+ children: [/*#__PURE__*/_jsx(SCCAIHomeScrollBody, {
180
+ ref: contentContainerRef,
181
+ children: homeBody
182
+ }), /*#__PURE__*/_jsx(SCCAIHomeGradientTop, {
142
183
  $show: showTopGradient
143
- }), /*#__PURE__*/_jsxs(SCCAIHomeContentInner, {
144
- showFAQs: homeScrollableLayout,
145
- $isAgentView: !isMAIA,
146
- children: [/*#__PURE__*/_jsxs(SCCAIHomeHeader, {
147
- $gap: isMAIA && section !== 'project' ? '8px' : '20px',
148
- $maxWidth: isMAIA ? '100%' : '380px',
149
- $isAgentView: !isMAIA,
150
- children: [renderHeaderContent(), section !== 'project' && /*#__PURE__*/_jsx(SCCAIHomeIntroduction, {
151
- expanded: expanded,
152
- children: !isMAIA && (agent === null || agent === void 0 ? void 0 : agent.introduction)
153
- })]
154
- }), showProjectSummary && (agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
155
- onClick: handlers.projectSummary,
156
- children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummary, {
157
- children: /*#__PURE__*/_jsx(TemplateGradientIcon, {
158
- height: 24,
159
- width: 24
160
- })
161
- }), /*#__PURE__*/_jsxs(SCCAIHomeProjectSummaryContent, {
162
- children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummaryTitle, {
163
- children: t('homeMenu.projectSummary.title')
164
- }), /*#__PURE__*/_jsx(SCCAIHomeProjectSummaryDescription, {
165
- children: t('homeMenu.projectSummary.description')
166
- })]
167
- })]
168
- }), showFAQs && /*#__PURE__*/_jsx(FrequentlyAskedQuestions, {
169
- onStartChat: onStartChat,
170
- showFAQs: showFAQs,
171
- showProjectSummary: showProjectSummary,
172
- agentId: agent === null || agent === void 0 ? void 0 : agent.id,
173
- lang: lang,
174
- isScrolling: isScrolling
175
- }), isMaiaker ? /*#__PURE__*/_jsx(ChatAIHomeMaiaker, {
176
- onStartChat: onStartChat
177
- }) : null]
178
- }), homeScrollableLayout && /*#__PURE__*/_jsx(SCCAIHomeGradientBottom, {
184
+ }), /*#__PURE__*/_jsx(SCCAIHomeGradientBottom, {
179
185
  $show: showBottomGradient
180
186
  })]
187
+ }) : /*#__PURE__*/_jsx(SCCAIHomeContent, {
188
+ showFAQs: false,
189
+ $isAgentView: !isMAIA,
190
+ children: homeBody
181
191
  })
182
192
  });
183
193
  };
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJ1c2VUIiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIk1BSUFJc29sb2dvIiwiVGVtcGxhdGVHcmFkaWVudEljb24iLCJDaGF0QUlIb21lTWFpYWtlciIsImpzeHMiLCJfanN4cyIsImpzeCIsIl9qc3giLCJGcmVxdWVudFF1ZXN0aW9ucyIsIkNoYXRBSUhvbWUiLCJfcmVmIiwiaGFuZGxlcnMiLCJvblN0YXJ0Q2hhdCIsImV4cGFuZGVkIiwiX3VzZVQiLCJ0IiwiaTE4biIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwiaXNNQUlBIiwibGFuZyIsImxhbmd1YWdlIiwic3VtbWFyeVByb2plY3RBY2Nlc3MiLCJ3aW5kb3ciLCJTdHJpbmciLCJNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUyIsInRvTG93ZXJDYXNlIiwibWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzIiwiZmFxc0FjY2VzcyIsInNob3dQcm9qZWN0U3VtbWFyeSIsImlzTWFpYWtlciIsImVudGl0eSIsInRlc3QiLCJuYW1lIiwic2hvd0ZBUXMiLCJob21lU2Nyb2xsYWJsZUxheW91dCIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImNoaWxkcmVuIiwiZW1vamkiLCJjcmVhdGVkX2J5IiwidGl0bGUiLCJpc19kZWxldGVkIiwiJG5vR2FwIiwicmVmIiwiJGlzQWdlbnRWaWV3IiwiJHNob3ciLCIkZ2FwIiwiJG1heFdpZHRoIiwib25DbGljayIsInByb2plY3RTdW1tYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcblxuaW1wb3J0IHtcbiAgU0NDQUlIb21lQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVDb250ZW50LFxuICBTQ0NBSUhvbWVDb250ZW50SW5uZXIsXG4gIFNDQ0FJSG9tZUdyYWRpZW50VG9wLFxuICBTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSxcbiAgU0NDQUlIb21lSGVhZGVyLFxuICBTQ0NBSUhvbWVHcmVldGluZyxcbiAgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVBZ2VudEluZm8sXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUsXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24sXG4gIFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0LFxuICBTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24sXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCxcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUsXG4gIFNDQ0FJSG9tZUljb25Db250YWluZXIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxuICBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2ssXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIH0gZnJvbSAnLi4vLi4vYXRvbXMvRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcbmltcG9ydCB7IFRlbXBsYXRlR3JhZGllbnRJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGVtcGxhdGVHcmFkaWVudEljb24nXG5pbXBvcnQgeyBDaGF0QUlIb21lTWFpYWtlciB9IGZyb20gJy4vQ2hhdEFJSG9tZU1haWFrZXInXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBGcmVxdWVudFF1ZXN0aW9ucyB7XG4gIHJlbnRhYmlsaWRhZF9wcm95ZWN0byA9ICdyZW50YWJpbGlkYWRfcHJveWVjdG8nLFxuICBhdmFuY2VfcHJveWVjdG8gPSAnYXZhbmNlX3Byb3llY3RvJyxcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUhvbWUgPSAoeyBoYW5kbGVycywgb25TdGFydENoYXQsIGV4cGFuZGVkIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgbGFuZyA9IGkxOG4ubGFuZ3VhZ2UgPT09ICdicicgPyAncHQnIDogaTE4bi5sYW5ndWFnZVxuXG4gIGNvbnN0IHN1bW1hcnlQcm9qZWN0QWNjZXNzID1cbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIChTdHJpbmcod2luZG93Lk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgfHxcbiAgICAgIFN0cmluZyh3aW5kb3cubWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpXG4gIGNvbnN0IGZhcXNBY2Nlc3MgPSB0cnVlXG4gIGNvbnN0IHNob3dQcm9qZWN0U3VtbWFyeSA9ICEhKGlzTUFJQSAmJiBzdW1tYXJ5UHJvamVjdEFjY2VzcylcbiAgY29uc3QgaXNNYWlha2VyID0gYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpXG4gIGNvbnN0IHNob3dGQVFzID0gISEoaXNNQUlBICYmIGZhcXNBY2Nlc3MgJiYgIWlzTWFpYWtlcilcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBhbGVhdG9yaW8gZGVzZGUgYWdlbnQuaW50cm9kdWN0aW9uIChhcnJheSBjb24gMyB2YXJpYW50ZXMgZGVsIGJhY2spLiBNYWlha2VyIHVzYSBzb2xvIGVsIGJsb3F1ZSBwcm9waW8sIHNpbiBpbnRybyBkZWwgYWdlbnRlLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIpIHJldHVybiAnJ1xuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIHNlY3Rpb24sIGlzTWFpYWtlcl0pXG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrICRub0dhcD17IWdyZWV0aW5nfT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICB7Z3JlZXRpbmcgPyA8U0NDQUlIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NDQUlIb21lR3JlZXRpbmc+IDogbnVsbH1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dGQVFzICYmIChcbiAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7aXNNYWlha2VyID8gPENoYXRBSUhvbWVNYWlha2VyIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUV6RSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFJMUMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIsRUFDM0JDLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4QkFBOEIsRUFDOUJDLDRCQUE0QixFQUM1QkMsa0NBQWtDLEVBQ2xDQywwQkFBMEIsRUFDMUJDLHFCQUFxQixFQUNyQkMsMkJBQTJC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
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJ1c2VUIiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZVNjcm9sbEFyZWEiLCJTQ0NBSUhvbWVTY3JvbGxCb2R5IiwiU0NDQUlIb21lQ29udGVudElubmVyIiwiU0NDQUlIb21lR3JhZGllbnRUb3AiLCJTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSIsIlNDQ0FJSG9tZUhlYWRlciIsIlNDQ0FJSG9tZUdyZWV0aW5nIiwiU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyIiwiU0NDQUlIb21lQWdlbnRJbmZvIiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnkiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlIiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbiIsIlNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0IiwiU0NDQUlIb21lSW50cm9kdWN0aW9uIiwiU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyIiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lIiwiU0NDQUlIb21lSWNvbkNvbnRhaW5lciIsIlNDQ0FJSG9tZUxvZ29XcmFwcGVyIiwiU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrIiwidXNlR2xvYmFsQ29udGV4dCIsInZhbGlkYXRlSXNNYWlhIiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiTUFJQUlzb2xvZ28iLCJUZW1wbGF0ZUdyYWRpZW50SWNvbiIsIkNoYXRBSUhvbWVNYWlha2VyIiwianN4cyIsIl9qc3hzIiwianN4IiwiX2pzeCIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJfdXNlVCIsInQiLCJpMThuIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsInNlY3Rpb24iLCJpc01BSUEiLCJsYW5nIiwibGFuZ3VhZ2UiLCJzdW1tYXJ5UHJvamVjdEFjY2VzcyIsIndpbmRvdyIsIlN0cmluZyIsIk1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTIiwidG9Mb3dlckNhc2UiLCJtYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MiLCJmYXFzQWNjZXNzIiwic2hvd1Byb2plY3RTdW1tYXJ5IiwiaXNNYWlha2VyIiwiZW50aXR5IiwidGVzdCIsIm5hbWUiLCJzaG93RkFRcyIsImhvbWVTY3JvbGxhYmxlTGF5b3V0IiwiY29udGVudENvbnRhaW5lclJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dUb3BHcmFkaWVudCIsInNldFNob3dUb3BHcmFkaWVudCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd0JvdHRvbUdyYWRpZW50Iiwic2V0U2hvd0JvdHRvbUdyYWRpZW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwic2Nyb2xsVGltZW91dFJlZiIsImdyZWV0aW5nIiwiaW50cm8iLCJpbnRyb2R1Y3Rpb24iLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJpZCIsImNoZWNrU2Nyb2xsIiwiY29udGFpbmVyIiwiY3VycmVudCIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImlzU2Nyb2xsYWJsZSIsImlzQXRUb3AiLCJpc0F0Qm90dG9tIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZXNpemVPYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyIiwib2JzZXJ2ZSIsInRpbWVvdXRJZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkaXNjb25uZWN0IiwicmVuZGVySGVhZGVyQ29udGVudCIsIl9hZ2VudCRjcmVhdGVkX2J5IiwiX2FnZW50JGNyZWF0ZWRfYnkyIiwiY2hpbGRyZW4iLCJlbW9qaSIsImNyZWF0ZWRfYnkiLCJ0aXRsZSIsImlzX2RlbGV0ZWQiLCIkbm9HYXAiLCJob21lQm9keSIsIiRpc0FnZW50VmlldyIsIiRnYXAiLCIkbWF4V2lkdGgiLCJvbkNsaWNrIiwicHJvamVjdFN1bW1hcnkiLCJoZWlnaHQiLCJ3aWR0aCIsImFnZW50SWQiLCJyZWYiLCIkc2hvdyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lU2Nyb2xsQXJlYSxcbiAgU0NDQUlIb21lU2Nyb2xsQm9keSxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVJY29uQ29udGFpbmVyLFxuICBTQ0NBSUhvbWVMb2dvV3JhcHBlcixcbiAgU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvTUFJQUlzb2xvZ28nXG5pbXBvcnQgeyBUZW1wbGF0ZUdyYWRpZW50SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1RlbXBsYXRlR3JhZGllbnRJY29uJ1xuaW1wb3J0IHsgQ2hhdEFJSG9tZU1haWFrZXIgfSBmcm9tICcuL0NoYXRBSUhvbWVNYWlha2VyJ1xuXG50eXBlIENoYXRBSUhvbWVQcm9wcyA9IHtcbiAgb25TdGFydENoYXQ6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAoKSA9PiB2b2lkPlxuICBleHBhbmRlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCB9OiBDaGF0QUlIb21lUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgeyBhZ2VudCwgc2VjdGlvbiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0JyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBjb25zdCBzdW1tYXJ5UHJvamVjdEFjY2VzcyA9XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAoU3RyaW5nKHdpbmRvdy5NQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8XG4gICAgICBTdHJpbmcod2luZG93Lm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKVxuICBjb25zdCBmYXFzQWNjZXNzID0gdHJ1ZVxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnkgPSAhIShpc01BSUEgJiYgc3VtbWFyeVByb2plY3RBY2Nlc3MpXG4gIGNvbnN0IGlzTWFpYWtlciA9IGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzICYmICFpc01haWFrZXIpXG4gIGNvbnN0IGhvbWVTY3JvbGxhYmxlTGF5b3V0ID0gc2hvd0ZBUXMgfHwgaXNNYWlha2VyXG5cbiAgLy8gTMOzZ2ljYSBkZWwgc2Nyb2xsIGNvbiBncmFkaWVudGVzIChvdmVybGF5IGZpam8gYWwgdmlld3BvcnQgZGVsIHNjcm9sbCwgbm8gc3RpY2t5IGVuIGVsIGZsdWpvKVxuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaykuIE1haWFrZXIgdXNhIHNvbG8gZWwgYmxvcXVlIHByb3Bpbywgc2luIGludHJvIGRlbCBhZ2VudGUuXG4gIGNvbnN0IGdyZWV0aW5nID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzTWFpYWtlcikgcmV0dXJuICcnXG4gICAgY29uc3QgaW50cm8gPSBhZ2VudD8uaW50cm9kdWN0aW9uXG4gICAgaWYgKCFpbnRybykgcmV0dXJuICcnXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW50cm8pICYmIGludHJvLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnRyb1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpbnRyby5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGludHJvID09PSAnc3RyaW5nJyA/IGludHJvIDogJydcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LmludHJvZHVjdGlvbiwgc2VjdGlvbiwgaXNNYWlha2VyXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaG9tZVNjcm9sbGFibGVMYXlvdXQpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IGNoZWNrU2Nyb2xsKCkpXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIpXG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGNoZWNrU2Nyb2xsLCAxMDApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuICAgICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrICRub0dhcD17IWdyZWV0aW5nfT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgPE1BSUFJc29sb2dvIC8+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICB7Z3JlZXRpbmcgPyA8U0NDQUlIb21lR3JlZXRpbmc+e2dyZWV0aW5nfTwvU0NDQUlIb21lR3JlZXRpbmc+IDogbnVsbH1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhvbWVCb2R5ID0gKFxuICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgPFNDQ0FJSG9tZUhlYWRlclxuICAgICAgICAkZ2FwPXtpc01BSUEgJiYgc2VjdGlvbiAhPT0gJ3Byb2plY3QnID8gJzhweCcgOiAnMjBweCd9XG4gICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgPlxuICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgIHtzZWN0aW9uICE9PSAncHJvamVjdCcgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24gZXhwYW5kZWQ9e2V4cGFuZGVkfT57IWlzTUFJQSAmJiBhZ2VudD8uaW50cm9kdWN0aW9ufTwvU0NDQUlIb21lSW50cm9kdWN0aW9uPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVIZWFkZXI+XG4gICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5ICYmIGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyAmJiAoXG4gICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LmRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgIDwvU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Q+XG4gICAgICApfVxuICAgICAge3Nob3dGQVFzICYmIChcbiAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgPC9TQ0NBSUhvbWVDb250ZW50SW5uZXI+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVDb250YWluZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfT5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCA/IChcbiAgICAgICAgPFNDQ0FJSG9tZVNjcm9sbEFyZWE+XG4gICAgICAgICAgPFNDQ0FJSG9tZVNjcm9sbEJvZHkgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfT57aG9tZUJvZHl9PC9TQ0NBSUhvbWVTY3JvbGxCb2R5PlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudFRvcCAkc2hvdz17c2hvd1RvcEdyYWRpZW50fSAvPlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPlxuICAgICAgICA8L1NDQ0FJSG9tZVNjcm9sbEFyZWE+XG4gICAgICApIDogKFxuICAgICAgICA8U0NDQUlIb21lQ29udGVudCBzaG93RkFRcz17ZmFsc2V9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgICAge2hvbWVCb2R5fVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvU0NDQUlIb21lQ29udGFpbmVy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QUN0QjdFLElBQUEsQ0FBQ0wsb0JBQW9CO1VBQUM4RixNQUFNLEVBQUUsRUFBRztVQUFDQyxLQUFLLEVBQUU7UUFBRyxDQUFFO01BQUMsQ0FDeEIsQ0FBQyxlQUMxQjVGLEtBQUEsQ0FBQ2xCLDhCQUE4QjtRQUFBaUcsUUFBQSxnQkFDN0I3RSxJQUFBLENBQUNuQiw0QkFBNEI7VUFBQWdHLFFBQUEsRUFBRXJFLENBQUMsQ0FBQywrQkFBK0I7UUFBQyxDQUErQixDQUFDLGVBQ2pHUixJQUFBLENBQUNsQixrQ0FBa0M7VUFBQStGLFFBQUEsRUFDaENyRSxDQUFDLENBQUMscUNBQXFDO1FBQUMsQ0FDUCxDQUFDO01BQUEsQ0FDUCxDQUFDO0lBQUEsQ0FDUCxDQUM3QixFQUNBb0IsUUFBUSxpQkFDUDVCLElBQUEsQ0FBQ1Asd0JBQXdCO01BQ3ZCWSxXQUFXLEVBQUVBLFdBQVk7TUFDekJ1QixRQUFRLEVBQUVBLFFBQVM7TUFDbkJMLGtCQUFrQixFQUFFQSxrQkFBbUI7TUFDdkNvRSxPQUFPLEVBQUVoRixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRTJDLEVBQUc7TUFDbkJ4QyxJQUFJLEVBQUVBLElBQUs7TUFDWDRCLFdBQVcsRUFBRUE7SUFBWSxDQUMxQixDQUNGLEVBQ0FsQixTQUFTLGdCQUFHeEIsSUFBQSxDQUFDSixpQkFBaUI7TUFBQ1MsV0FBVyxFQUFFQTtJQUFZLENBQUUsQ0FBQyxHQUFHLElBQUk7RUFBQSxDQUM5QyxDQUN4QjtFQUVELG9CQUNFTCxJQUFBLENBQUNoQyxrQkFBa0I7SUFBQzRELFFBQVEsRUFBRUEsUUFBUztJQUFBaUQsUUFBQSxFQUNwQ2hELG9CQUFvQixnQkFDbkIvQixLQUFBLENBQUM1QixtQkFBbUI7TUFBQTJHLFFBQUEsZ0JBQ2xCN0UsSUFBQSxDQUFDN0IsbUJBQW1CO1FBQUN5SCxHQUFHLEVBQUU5RCxtQkFBb0I7UUFBQStDLFFBQUEsRUFBRU07TUFBUSxDQUFzQixDQUFDLGVBQy9FbkYsSUFBQSxDQUFDM0Isb0JBQW9CO1FBQUN3SCxLQUFLLEVBQUUzRDtNQUFnQixDQUFFLENBQUMsZUFDaERsQyxJQUFBLENBQUMxQix1QkFBdUI7UUFBQ3VILEtBQUssRUFBRXZEO01BQW1CLENBQUUsQ0FBQztJQUFBLENBQ25DLENBQUMsZ0JBRXRCdEMsSUFBQSxDQUFDL0IsZ0JBQWdCO01BQUMyRCxRQUFRLEVBQUUsS0FBTTtNQUFDd0QsWUFBWSxFQUFFLENBQUN2RSxNQUFPO01BQUFnRSxRQUFBLEVBQ3RETTtJQUFRLENBQ087RUFDbkIsQ0FDaUIsQ0FBQztBQUV6QixDQUFDIiwiaWdub3JlTGlzdCI6W119