@projectcor/maia-components 2.11.40-8 → 2.11.40

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 (80) hide show
  1. package/lib/App.js +11 -22
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +321 -238
  3. package/lib/components/atoms/MAIAInput/styles.js +46 -75
  4. package/lib/components/atoms/icons/index.js +1 -2
  5. package/lib/components/index.js +1 -2
  6. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +4 -8
  7. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -31
  8. package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -5
  9. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +6 -8
  10. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -5
  11. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +3 -2
  12. package/lib/components/molecules/Sidebar/Sidebar.js +5 -9
  13. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -6
  14. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -5
  15. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +3 -6
  16. package/lib/constants/config.js +1 -3
  17. package/lib/context/cor-user.js +1 -1
  18. package/lib/dev/Providers.js +6 -11
  19. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  20. package/lib/hooks/useChatManager/useChatManager.js +11 -21
  21. package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
  22. package/lib/hooks/useChatMessages/useChatMessages.js +14 -30
  23. package/lib/hooks/useClientSearch.js +2 -3
  24. package/lib/hooks/useEvent.js +1 -6
  25. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
  26. package/lib/hooks/useProjectSearch.js +2 -3
  27. package/lib/hooks/useRecentClientsSearch.js +2 -3
  28. package/lib/hooks/useTaskPanel.js +10 -3
  29. package/lib/lang/br/index.js +1 -24
  30. package/lib/lang/en/index.js +1 -24
  31. package/lib/lang/es/index.js +1 -24
  32. package/lib/lang/fr/index.js +1 -23
  33. package/lib/services/maia/Chats/getChatMessages.js +4 -29
  34. package/lib/services/maia/Orchestrator/orchestrator.js +5 -8
  35. package/lib/services/maia/RecentProjects/getRecentProjects.js +4 -12
  36. package/lib/services/utils/mapChatMessages.js +5 -12
  37. package/lib/types/Chat.js +1 -1
  38. package/lib/types/agent.js +1 -1
  39. package/package.json +1 -2
  40. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +0 -38
  41. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +0 -184
  42. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +0 -39
  43. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +0 -325
  44. package/lib/components/atoms/ContextMentionChip/index.js +0 -4
  45. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +0 -195
  46. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +0 -6
  47. package/lib/components/atoms/ContextMentionEditor/index.js +0 -2
  48. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +0 -280
  49. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +0 -130
  50. package/lib/components/atoms/ContextMentionItem/index.js +0 -2
  51. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +0 -168
  52. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +0 -79
  53. package/lib/components/atoms/ContextMentionPopover/index.js +0 -3
  54. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +0 -269
  55. package/lib/components/atoms/icons/NotionIcon.js +0 -36
  56. package/lib/components/atoms/icons/SubtaskIcon.js +0 -36
  57. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +0 -68
  58. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +0 -6
  59. package/lib/components/molecules/ContextMentionInput/index.js +0 -2
  60. package/lib/constants/taskLinkIcon.js +0 -6
  61. package/lib/dev/DevContextMentionInput.js +0 -65
  62. package/lib/hooks/useCaretPosition.js +0 -35
  63. package/lib/hooks/useContextMentions.js +0 -270
  64. package/lib/hooks/useEntitySearch.js +0 -996
  65. package/lib/hooks/useMentionAllowedTypes.js +0 -103
  66. package/lib/hooks/useMentionPopover.js +0 -333
  67. package/lib/hooks/useTextOverflowEllipsisTooltip.js +0 -34
  68. package/lib/services/maia/RecentTasks/getRecentTasks.js +0 -54
  69. package/lib/services/maia/RecentTasks/index.js +0 -6
  70. package/lib/services/maia/RecentUsers/getRecentUsers.js +0 -59
  71. package/lib/services/maia/RecentUsers/index.js +0 -6
  72. package/lib/services/query/entitySearchQuery.js +0 -18
  73. package/lib/services/query/usersDirectoryQuery.js +0 -19
  74. package/lib/types/contextMention.js +0 -37
  75. package/lib/utils/contextMentionIcons.js +0 -115
  76. package/lib/utils/contextMentionLabel.js +0 -4
  77. package/lib/utils/contextMentionTypeLabel.js +0 -17
  78. package/lib/utils/maiaStreamdownRehypePlugins.js +0 -27
  79. package/lib/utils/openTaskInCorPanel.js +0 -18
  80. package/lib/utils/renderContextMentions.js +0 -299
@@ -1,168 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { forwardRef, useCallback, useEffect, useMemo, useState } from 'react';
3
- import { InformationCircle } from '@projectcor/icons/lib/components/InformationCircle';
4
- import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
5
- import { useT } from '../../../hooks/useT';
6
- import { ContextMentionItem } from '../ContextMentionItem';
7
- import { Loader } from '../Loader';
8
- import { SCMPContainer, SCMPDivider, SCMPDividerWrapper, SCMPRecentsLabel, SCMPRecentsRow, SCMPRecentsTitle, SCMPList, SCMPStateWrapper, SCMPKeyboardHint, SCMPTab, SCMPTabsGroup, SCMPTabsRow, SCMPLoadMoreRow } from './ContextMentionPopover.styles';
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- var TAB_I18N_KEYS = {
11
- client: 'contextMention.tabs.client',
12
- project: 'contextMention.tabs.project',
13
- task: 'contextMention.tabs.task',
14
- user: 'contextMention.tabs.user',
15
- mcp: 'contextMention.tabs.mcp'
16
- };
17
- var TAB_FALLBACKS = {
18
- client: 'Cliente',
19
- project: 'Proyecto',
20
- task: 'Tarea',
21
- user: 'Usuario',
22
- mcp: 'Conectores'
23
- };
24
- export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
25
- var allowedTypes = _ref.allowedTypes,
26
- activeType = _ref.activeType,
27
- onTypeChange = _ref.onTypeChange,
28
- items = _ref.items,
29
- loading = _ref.loading,
30
- error = _ref.error,
31
- hideRecentsLabel = _ref.hideRecentsLabel,
32
- hasMore = _ref.hasMore,
33
- isLoadingMore = _ref.isLoadingMore,
34
- onReachListEnd = _ref.onReachListEnd,
35
- searchValue = _ref.searchValue,
36
- onItemSelected = _ref.onItemSelected,
37
- controlledIndex = _ref.activeIndex,
38
- onActiveIndexChange = _ref.onActiveIndexChange,
39
- style = _ref.style,
40
- keyboardHint = _ref.keyboardHint;
41
- var _useT = useT(),
42
- t = _useT.t;
43
- var _useState = useState(0),
44
- _useState2 = _slicedToArray(_useState, 2),
45
- internalIndex = _useState2[0],
46
- setInternalIndex = _useState2[1];
47
- var activeIndex = controlledIndex !== null && controlledIndex !== void 0 ? controlledIndex : internalIndex;
48
- var updateActiveIndex = useCallback(function (idx) {
49
- if (onActiveIndexChange) onActiveIndexChange(idx);else setInternalIndex(idx);
50
- }, [onActiveIndexChange]);
51
-
52
- // Reset al cambiar de tab o cantidad de resultados
53
- useEffect(function () {
54
- updateActiveIndex(0);
55
- }, [activeType, items.length, updateActiveIndex]);
56
- var emptyMessage = useMemo(function () {
57
- if (searchValue.trim()) {
58
- return t('contextMention.empty.withQuery', {
59
- query: searchValue,
60
- defaultValue: "No hay resultados para \"".concat(searchValue, "\"")
61
- });
62
- }
63
- return t('contextMention.empty.recents', {
64
- defaultValue: 'Empezá a escribir para buscar'
65
- });
66
- }, [searchValue, t]);
67
- var renderBody = function renderBody() {
68
- if (loading) {
69
- return /*#__PURE__*/_jsx(SCMPStateWrapper, {
70
- children: t('contextMention.loading', {
71
- defaultValue: 'Buscando...'
72
- })
73
- });
74
- }
75
- if (error) {
76
- return /*#__PURE__*/_jsx(SCMPStateWrapper, {
77
- children: t('contextMention.error', {
78
- defaultValue: 'Hubo un problema al buscar'
79
- })
80
- });
81
- }
82
- if (items.length === 0) {
83
- return /*#__PURE__*/_jsx(SCMPStateWrapper, {
84
- children: emptyMessage
85
- });
86
- }
87
- return /*#__PURE__*/_jsxs(SCMPList, {
88
- onScroll: function onScroll(e) {
89
- if (!onReachListEnd || !hasMore || isLoadingMore) return;
90
- var el = e.currentTarget;
91
- var threshold = 24;
92
- var nearBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - threshold;
93
- if (nearBottom) {
94
- // Debug temporal de paginación por scroll
95
- console.info('[ContextMentionPopover] near bottom, requesting next page', {
96
- scrollTop: el.scrollTop,
97
- clientHeight: el.clientHeight,
98
- scrollHeight: el.scrollHeight,
99
- hasMore: hasMore,
100
- isLoadingMore: isLoadingMore
101
- });
102
- onReachListEnd();
103
- }
104
- },
105
- children: [!searchValue.trim() && activeType !== 'user' && !hideRecentsLabel ? /*#__PURE__*/_jsx(SCMPRecentsRow, {
106
- children: /*#__PURE__*/_jsx(SCMPRecentsTitle, {
107
- children: /*#__PURE__*/_jsx(SCMPRecentsLabel, {
108
- children: t('contextMention.recentsTitle', {
109
- defaultValue: 'Recientes'
110
- })
111
- })
112
- })
113
- }) : null, items.map(function (item, idx) {
114
- return /*#__PURE__*/_jsx(ContextMentionItem, {
115
- item: item,
116
- active: idx === activeIndex,
117
- onSelect: onItemSelected,
118
- onHover: function onHover() {
119
- return updateActiveIndex(idx);
120
- }
121
- }, "".concat(item.type, "-").concat(item.id));
122
- }), isLoadingMore ? /*#__PURE__*/_jsx(SCMPLoadMoreRow, {
123
- children: /*#__PURE__*/_jsx(Loader, {
124
- size: "small"
125
- })
126
- }) : null]
127
- });
128
- };
129
- return /*#__PURE__*/_jsxs(SCMPContainer, {
130
- ref: ref,
131
- style: style,
132
- role: "listbox",
133
- "aria-label": "Context mention picker",
134
- children: [/*#__PURE__*/_jsxs(SCMPTabsRow, {
135
- children: [/*#__PURE__*/_jsx(SCMPTabsGroup, {
136
- children: allowedTypes.map(function (type, tabIndex) {
137
- var label = t(TAB_I18N_KEYS[type], {
138
- defaultValue: TAB_FALLBACKS[type]
139
- });
140
- var atPrefix = '@'.repeat(tabIndex + 1);
141
- return /*#__PURE__*/_jsxs(SCMPTab, {
142
- type: "button",
143
- "aria-label": "".concat(atPrefix, " ").concat(label),
144
- $active: type === activeType,
145
- onMouseDown: function onMouseDown(e) {
146
- e.preventDefault();
147
- onTypeChange(type);
148
- },
149
- children: [atPrefix, label]
150
- }, type);
151
- })
152
- }), /*#__PURE__*/_jsx(Tooltip, {
153
- title: keyboardHint || '',
154
- children: /*#__PURE__*/_jsx(SCMPKeyboardHint, {
155
- children: /*#__PURE__*/_jsx(InformationCircle, {
156
- width: 20,
157
- height: 20,
158
- color: "#808080"
159
- })
160
- })
161
- })]
162
- }), /*#__PURE__*/_jsx(SCMPDividerWrapper, {
163
- children: /*#__PURE__*/_jsx(SCMPDivider, {})
164
- }), renderBody()]
165
- });
166
- });
167
- ContextMentionPopover.displayName = 'ContextMentionPopover';
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUIiwiQ29udGV4dE1lbnRpb25JdGVtIiwiTG9hZGVyIiwiU0NNUENvbnRhaW5lciIsIlNDTVBEaXZpZGVyIiwiU0NNUERpdmlkZXJXcmFwcGVyIiwiU0NNUFJlY2VudHNMYWJlbCIsIlNDTVBSZWNlbnRzUm93IiwiU0NNUFJlY2VudHNUaXRsZSIsIlNDTVBMaXN0IiwiU0NNUFN0YXRlV3JhcHBlciIsIlNDTVBLZXlib2FyZEhpbnQiLCJTQ01QVGFiIiwiU0NNUFRhYnNHcm91cCIsIlNDTVBUYWJzUm93IiwiU0NNUExvYWRNb3JlUm93IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlRBQl9JMThOX0tFWVMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsInVzZXIiLCJtY3AiLCJUQUJfRkFMTEJBQ0tTIiwiQ29udGV4dE1lbnRpb25Qb3BvdmVyIiwiX3JlZiIsInJlZiIsImFsbG93ZWRUeXBlcyIsImFjdGl2ZVR5cGUiLCJvblR5cGVDaGFuZ2UiLCJpdGVtcyIsImxvYWRpbmciLCJlcnJvciIsImhpZGVSZWNlbnRzTGFiZWwiLCJoYXNNb3JlIiwiaXNMb2FkaW5nTW9yZSIsIm9uUmVhY2hMaXN0RW5kIiwic2VhcmNoVmFsdWUiLCJvbkl0ZW1TZWxlY3RlZCIsImNvbnRyb2xsZWRJbmRleCIsImFjdGl2ZUluZGV4Iiwib25BY3RpdmVJbmRleENoYW5nZSIsInN0eWxlIiwia2V5Ym9hcmRIaW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW50ZXJuYWxJbmRleCIsInNldEludGVybmFsSW5kZXgiLCJ1cGRhdGVBY3RpdmVJbmRleCIsImlkeCIsImxlbmd0aCIsImVtcHR5TWVzc2FnZSIsInRyaW0iLCJxdWVyeSIsImRlZmF1bHRWYWx1ZSIsImNvbmNhdCIsInJlbmRlckJvZHkiLCJjaGlsZHJlbiIsIm9uU2Nyb2xsIiwiZSIsImVsIiwiY3VycmVudFRhcmdldCIsInRocmVzaG9sZCIsIm5lYXJCb3R0b20iLCJzY3JvbGxUb3AiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb25zb2xlIiwiaW5mbyIsIm1hcCIsIml0ZW0iLCJhY3RpdmUiLCJvblNlbGVjdCIsIm9uSG92ZXIiLCJ0eXBlIiwiaWQiLCJzaXplIiwicm9sZSIsInRhYkluZGV4IiwibGFiZWwiLCJhdFByZWZpeCIsInJlcGVhdCIsIiRhY3RpdmUiLCJvbk1vdXNlRG93biIsInByZXZlbnREZWZhdWx0IiwidGl0bGUiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvblBvcG92ZXIvQ29udGV4dE1lbnRpb25Qb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDU1NQcm9wZXJ0aWVzLCBmb3J3YXJkUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSW5mb3JtYXRpb25DaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9JbmZvcm1hdGlvbkNpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uSXRlbSBhcyBDb250ZXh0TWVudGlvbkl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkl0ZW0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi9Mb2FkZXInXG5pbXBvcnQge1xuICBTQ01QQ29udGFpbmVyLFxuICBTQ01QRGl2aWRlcixcbiAgU0NNUERpdmlkZXJXcmFwcGVyLFxuICBTQ01QUmVjZW50c0xhYmVsLFxuICBTQ01QUmVjZW50c1JvdyxcbiAgU0NNUFJlY2VudHNUaXRsZSxcbiAgU0NNUExpc3QsXG4gIFNDTVBTdGF0ZVdyYXBwZXIsXG4gIFNDTVBLZXlib2FyZEhpbnQsXG4gIFNDTVBUYWIsXG4gIFNDTVBUYWJzR3JvdXAsXG4gIFNDTVBUYWJzUm93LFxuICBTQ01QTG9hZE1vcmVSb3csXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25Qb3BvdmVyUHJvcHMgPSB7XG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXVxuICBhY3RpdmVUeXBlOiBDb250ZXh0RW50aXR5VHlwZVxuICBvblR5cGVDaGFuZ2U6ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4gdm9pZFxuICBpdGVtczogQ29udGV4dE1lbnRpb25JdGVtVHlwZVtdXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgZXJyb3I6IGJvb2xlYW5cbiAgaGlkZVJlY2VudHNMYWJlbD86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaXNMb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgb25SZWFjaExpc3RFbmQ/OiAoKSA9PiB2b2lkXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmdcbiAgb25JdGVtU2VsZWN0ZWQ6IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG4gIC8qKiDDjW5kaWNlIHByZXNlbGVjY2lvbmFkbyAobmF2ZWdhY2nDs24gcG9yIHRlY2xhZG8gZXh0ZXJuYSkuIFNpIG5vIHNlIHBhc2EsIHNlIG1hbmVqYSBpbnRlcm5hbWVudGUuICovXG4gIGFjdGl2ZUluZGV4PzogbnVtYmVyXG4gIG9uQWN0aXZlSW5kZXhDaGFuZ2U/OiAoaWR4OiBudW1iZXIpID0+IHZvaWRcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzXG4gIGtleWJvYXJkSGludD86IHN0cmluZ1xufVxuXG5jb25zdCBUQUJfSTE4Tl9LRVlTOiBSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIHN0cmluZz4gPSB7XG4gIGNsaWVudDogJ2NvbnRleHRNZW50aW9uLnRhYnMuY2xpZW50JyxcbiAgcHJvamVjdDogJ2NvbnRleHRNZW50aW9uLnRhYnMucHJvamVjdCcsXG4gIHRhc2s6ICdjb250ZXh0TWVudGlvbi50YWJzLnRhc2snLFxuICB1c2VyOiAnY29udGV4dE1lbnRpb24udGFicy51c2VyJyxcbiAgbWNwOiAnY29udGV4dE1lbnRpb24udGFicy5tY3AnLFxufVxuXG5jb25zdCBUQUJfRkFMTEJBQ0tTOiBSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIHN0cmluZz4gPSB7XG4gIGNsaWVudDogJ0NsaWVudGUnLFxuICBwcm9qZWN0OiAnUHJveWVjdG8nLFxuICB0YXNrOiAnVGFyZWEnLFxuICB1c2VyOiAnVXN1YXJpbycsXG4gIG1jcDogJ0NvbmVjdG9yZXMnLFxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25Qb3BvdmVyID0gZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgQ29udGV4dE1lbnRpb25Qb3BvdmVyUHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgYWxsb3dlZFR5cGVzLFxuICAgICAgYWN0aXZlVHlwZSxcbiAgICAgIG9uVHlwZUNoYW5nZSxcbiAgICAgIGl0ZW1zLFxuICAgICAgbG9hZGluZyxcbiAgICAgIGVycm9yLFxuICAgICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICAgIGhhc01vcmUsXG4gICAgICBpc0xvYWRpbmdNb3JlLFxuICAgICAgb25SZWFjaExpc3RFbmQsXG4gICAgICBzZWFyY2hWYWx1ZSxcbiAgICAgIG9uSXRlbVNlbGVjdGVkLFxuICAgICAgYWN0aXZlSW5kZXg6IGNvbnRyb2xsZWRJbmRleCxcbiAgICAgIG9uQWN0aXZlSW5kZXhDaGFuZ2UsXG4gICAgICBzdHlsZSxcbiAgICAgIGtleWJvYXJkSGludCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICAgIGNvbnN0IFtpbnRlcm5hbEluZGV4LCBzZXRJbnRlcm5hbEluZGV4XSA9IHVzZVN0YXRlKDApXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBjb250cm9sbGVkSW5kZXggPz8gaW50ZXJuYWxJbmRleFxuXG4gICAgY29uc3QgdXBkYXRlQWN0aXZlSW5kZXggPSB1c2VDYWxsYmFjayhcbiAgICAgIChpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAob25BY3RpdmVJbmRleENoYW5nZSkgb25BY3RpdmVJbmRleENoYW5nZShpZHgpXG4gICAgICAgIGVsc2Ugc2V0SW50ZXJuYWxJbmRleChpZHgpXG4gICAgICB9LFxuICAgICAgW29uQWN0aXZlSW5kZXhDaGFuZ2VdXG4gICAgKVxuXG4gICAgLy8gUmVzZXQgYWwgY2FtYmlhciBkZSB0YWIgbyBjYW50aWRhZCBkZSByZXN1bHRhZG9zXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHVwZGF0ZUFjdGl2ZUluZGV4KDApXG4gICAgfSwgW2FjdGl2ZVR5cGUsIGl0ZW1zLmxlbmd0aCwgdXBkYXRlQWN0aXZlSW5kZXhdKVxuXG4gICAgY29uc3QgZW1wdHlNZXNzYWdlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoVmFsdWUudHJpbSgpKSB7XG4gICAgICAgIHJldHVybiB0KCdjb250ZXh0TWVudGlvbi5lbXB0eS53aXRoUXVlcnknLCB7XG4gICAgICAgICAgcXVlcnk6IHNlYXJjaFZhbHVlLFxuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogYE5vIGhheSByZXN1bHRhZG9zIHBhcmEgXCIke3NlYXJjaFZhbHVlfVwiYCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB0KCdjb250ZXh0TWVudGlvbi5lbXB0eS5yZWNlbnRzJywgeyBkZWZhdWx0VmFsdWU6ICdFbXBlesOhIGEgZXNjcmliaXIgcGFyYSBidXNjYXInIH0pXG4gICAgfSwgW3NlYXJjaFZhbHVlLCB0XSlcblxuICAgIGNvbnN0IHJlbmRlckJvZHkgPSAoKSA9PiB7XG4gICAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm4gPFNDTVBTdGF0ZVdyYXBwZXI+e3QoJ2NvbnRleHRNZW50aW9uLmxvYWRpbmcnLCB7IGRlZmF1bHRWYWx1ZTogJ0J1c2NhbmRvLi4uJyB9KX08L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICB9XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgICAgICAgIHt0KCdjb250ZXh0TWVudGlvbi5lcnJvcicsIHsgZGVmYXVsdFZhbHVlOiAnSHVibyB1biBwcm9ibGVtYSBhbCBidXNjYXInIH0pfVxuICAgICAgICAgIDwvU0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gPFNDTVBTdGF0ZVdyYXBwZXI+e2VtcHR5TWVzc2FnZX08L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U0NNUExpc3RcbiAgICAgICAgICBvblNjcm9sbD17ZSA9PiB7XG4gICAgICAgICAgICBpZiAoIW9uUmVhY2hMaXN0RW5kIHx8ICFoYXNNb3JlIHx8IGlzTG9hZGluZ01vcmUpIHJldHVyblxuICAgICAgICAgICAgY29uc3QgZWwgPSBlLmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgIGNvbnN0IHRocmVzaG9sZCA9IDI0XG4gICAgICAgICAgICBjb25zdCBuZWFyQm90dG9tID0gZWwuc2Nyb2xsVG9wICsgZWwuY2xpZW50SGVpZ2h0ID49IGVsLnNjcm9sbEhlaWdodCAtIHRocmVzaG9sZFxuICAgICAgICAgICAgaWYgKG5lYXJCb3R0b20pIHtcbiAgICAgICAgICAgICAgLy8gRGVidWcgdGVtcG9yYWwgZGUgcGFnaW5hY2nDs24gcG9yIHNjcm9sbFxuICAgICAgICAgICAgICBjb25zb2xlLmluZm8oJ1tDb250ZXh0TWVudGlvblBvcG92ZXJdIG5lYXIgYm90dG9tLCByZXF1ZXN0aW5nIG5leHQgcGFnZScsIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IGVsLnNjcm9sbFRvcCxcbiAgICAgICAgICAgICAgICBjbGllbnRIZWlnaHQ6IGVsLmNsaWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IGVsLnNjcm9sbEhlaWdodCxcbiAgICAgICAgICAgICAgICBoYXNNb3JlLFxuICAgICAgICAgICAgICAgIGlzTG9hZGluZ01vcmUsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIG9uUmVhY2hMaXN0RW5kKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgeyFzZWFyY2hWYWx1ZS50cmltKCkgJiYgYWN0aXZlVHlwZSAhPT0gJ3VzZXInICYmICFoaWRlUmVjZW50c0xhYmVsID8gKFxuICAgICAgICAgICAgPFNDTVBSZWNlbnRzUm93PlxuICAgICAgICAgICAgICA8U0NNUFJlY2VudHNUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNUFJlY2VudHNMYWJlbD57dCgnY29udGV4dE1lbnRpb24ucmVjZW50c1RpdGxlJywgeyBkZWZhdWx0VmFsdWU6ICdSZWNpZW50ZXMnIH0pfTwvU0NNUFJlY2VudHNMYWJlbD5cbiAgICAgICAgICAgICAgPC9TQ01QUmVjZW50c1RpdGxlPlxuICAgICAgICAgICAgPC9TQ01QUmVjZW50c1Jvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpZHgpID0+IChcbiAgICAgICAgICAgIDxDb250ZXh0TWVudGlvbkl0ZW1cbiAgICAgICAgICAgICAga2V5PXtgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gfVxuICAgICAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgICAgICBhY3RpdmU9e2lkeCA9PT0gYWN0aXZlSW5kZXh9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkl0ZW1TZWxlY3RlZH1cbiAgICAgICAgICAgICAgb25Ib3Zlcj17KCkgPT4gdXBkYXRlQWN0aXZlSW5kZXgoaWR4KX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAge2lzTG9hZGluZ01vcmUgPyAoXG4gICAgICAgICAgICA8U0NNUExvYWRNb3JlUm93PlxuICAgICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBMb2FkTW9yZVJvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01QTGlzdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBDb250YWluZXIgcmVmPXtyZWZ9IHN0eWxlPXtzdHlsZX0gcm9sZT1cImxpc3Rib3hcIiBhcmlhLWxhYmVsPVwiQ29udGV4dCBtZW50aW9uIHBpY2tlclwiPlxuICAgICAgICA8U0NNUFRhYnNSb3c+XG4gICAgICAgICAgPFNDTVBUYWJzR3JvdXA+XG4gICAgICAgICAgICB7YWxsb3dlZFR5cGVzLm1hcCgodHlwZSwgdGFiSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0KFRBQl9JMThOX0tFWVNbdHlwZV0sIHsgZGVmYXVsdFZhbHVlOiBUQUJfRkFMTEJBQ0tTW3R5cGVdIH0pXG4gICAgICAgICAgICAgIGNvbnN0IGF0UHJlZml4ID0gJ0AnLnJlcGVhdCh0YWJJbmRleCArIDEpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFNDTVBUYWJcbiAgICAgICAgICAgICAgICAgIGtleT17dHlwZX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YCR7YXRQcmVmaXh9ICR7bGFiZWx9YH1cbiAgICAgICAgICAgICAgICAgICRhY3RpdmU9e3R5cGUgPT09IGFjdGl2ZVR5cGV9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICBvblR5cGVDaGFuZ2UodHlwZSlcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2F0UHJlZml4fVxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvU0NNUFRhYj5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ01QVGFic0dyb3VwPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtrZXlib2FyZEhpbnQgfHwgJyd9PlxuICAgICAgICAgICAgPFNDTVBLZXlib2FyZEhpbnQ+XG4gICAgICAgICAgICAgIDxJbmZvcm1hdGlvbkNpcmNsZSB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPVwiIzgwODA4MFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBLZXlib2FyZEhpbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDTVBUYWJzUm93PlxuICAgICAgICA8U0NNUERpdmlkZXJXcmFwcGVyPlxuICAgICAgICAgIDxTQ01QRGl2aWRlciAvPlxuICAgICAgICA8L1NDTVBEaXZpZGVyV3JhcHBlcj5cbiAgICAgICAge3JlbmRlckJvZHkoKX1cbiAgICAgIDwvU0NNUENvbnRhaW5lcj5cbiAgICApXG4gIH1cbilcblxuQ29udGV4dE1lbnRpb25Qb3BvdmVyLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXdCQSxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzVGLFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFFMUMsU0FBU0Msa0JBQWtCLFFBQVEsdUJBQXVCO0FBQzFELFNBQVNDLE1BQU0sUUFBUSxXQUFXO0FBQ2xDLFNBQ0VDLGFBQWEsRUFDYkMsV0FBVyxFQUNYQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsY0FBYyxFQUNkQyxnQkFBZ0IsRUFDaEJDLFFBQVEsRUFDUkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJDLE9BQU8sRUFDUEMsYUFBYSxFQUNiQyxXQUFXLEVBQ1hDLGVBQWUsUUFDVixnQ0FBZ0M7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBc0J2QyxJQUFNQyxhQUFnRCxHQUFHO0VBQ3ZEQyxNQUFNLEVBQUUsNEJBQTRCO0VBQ3BDQyxPQUFPLEVBQUUsNkJBQTZCO0VBQ3RDQyxJQUFJLEVBQUUsMEJBQTBCO0VBQ2hDQyxJQUFJLEVBQUUsMEJBQTBCO0VBQ2hDQyxHQUFHLEVBQUU7QUFDUCxDQUFDO0FBRUQsSUFBTUMsYUFBZ0QsR0FBRztFQUN2REwsTUFBTSxFQUFFLFNBQVM7RUFDakJDLE9BQU8sRUFBRSxVQUFVO0VBQ25CQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUUsU0FBUztFQUNmQyxHQUFHLEVBQUU7QUFDUCxDQUFDO0FBRUQsT0FBTyxJQUFNRSxxQkFBcUIsZ0JBQUdsQyxVQUFVLENBQzdDLFVBQUFtQyxJQUFBLEVBbUJFQyxHQUFHLEVBQ0E7RUFBQSxJQWxCREMsWUFBWSxHQUFBRixJQUFBLENBQVpFLFlBQVk7SUFDWkMsVUFBVSxHQUFBSCxJQUFBLENBQVZHLFVBQVU7SUFDVkMsWUFBWSxHQUFBSixJQUFBLENBQVpJLFlBQVk7SUFDWkMsS0FBSyxHQUFBTCxJQUFBLENBQUxLLEtBQUs7SUFDTEMsT0FBTyxHQUFBTixJQUFBLENBQVBNLE9BQU87SUFDUEMsS0FBSyxHQUFBUCxJQUFBLENBQUxPLEtBQUs7SUFDTEMsZ0JBQWdCLEdBQUFSLElBQUEsQ0FBaEJRLGdCQUFnQjtJQUNoQkMsT0FBTyxHQUFBVCxJQUFBLENBQVBTLE9BQU87SUFDUEMsYUFBYSxHQUFBVixJQUFBLENBQWJVLGFBQWE7SUFDYkMsY0FBYyxHQUFBWCxJQUFBLENBQWRXLGNBQWM7SUFDZEMsV0FBVyxHQUFBWixJQUFBLENBQVhZLFdBQVc7SUFDWEMsY0FBYyxHQUFBYixJQUFBLENBQWRhLGNBQWM7SUFDREMsZUFBZSxHQUFBZCxJQUFBLENBQTVCZSxXQUFXO0lBQ1hDLG1CQUFtQixHQUFBaEIsSUFBQSxDQUFuQmdCLG1CQUFtQjtJQUNuQkMsS0FBSyxHQUFBakIsSUFBQSxDQUFMaUIsS0FBSztJQUNMQyxZQUFZLEdBQUFsQixJQUFBLENBQVprQixZQUFZO0VBSWQsSUFBQUMsS0FBQSxHQUFjL0MsSUFBSSxDQUFDLENBQUM7SUFBWmdELENBQUMsR0FBQUQsS0FBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsU0FBQSxHQUEwQ3BELFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQXFELFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQTlDRyxhQUFhLEdBQUFGLFVBQUE7SUFBRUcsZ0JBQWdCLEdBQUFILFVBQUE7RUFDdEMsSUFBTVAsV0FBVyxHQUFHRCxlQUFlLGFBQWZBLGVBQWUsY0FBZkEsZUFBZSxHQUFJVSxhQUFhO0VBRXBELElBQU1FLGlCQUFpQixHQUFHNUQsV0FBVyxDQUNuQyxVQUFDNkQsR0FBVyxFQUFLO0lBQ2YsSUFBSVgsbUJBQW1CLEVBQUVBLG1CQUFtQixDQUFDVyxHQUFHLENBQUMsTUFDNUNGLGdCQUFnQixDQUFDRSxHQUFHLENBQUM7RUFDNUIsQ0FBQyxFQUNELENBQUNYLG1CQUFtQixDQUN0QixDQUFDOztFQUVEO0VBQ0FqRCxTQUFTLENBQUMsWUFBTTtJQUNkMkQsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0VBQ3RCLENBQUMsRUFBRSxDQUFDdkIsVUFBVSxFQUFFRSxLQUFLLENBQUN1QixNQUFNLEVBQUVGLGlCQUFpQixDQUFDLENBQUM7RUFFakQsSUFBTUcsWUFBWSxHQUFHN0QsT0FBTyxDQUFDLFlBQU07SUFDakMsSUFBSTRDLFdBQVcsQ0FBQ2tCLElBQUksQ0FBQyxDQUFDLEVBQUU7TUFDdEIsT0FBT1YsQ0FBQyxDQUFDLGdDQUFnQyxFQUFFO1FBQ3pDVyxLQUFLLEVBQUVuQixXQUFXO1FBQ2xCb0IsWUFBWSw4QkFBQUMsTUFBQSxDQUE2QnJCLFdBQVc7TUFDdEQsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxPQUFPUSxDQUFDLENBQUMsOEJBQThCLEVBQUU7TUFBRVksWUFBWSxFQUFFO0lBQWdDLENBQUMsQ0FBQztFQUM3RixDQUFDLEVBQUUsQ0FBQ3BCLFdBQVcsRUFBRVEsQ0FBQyxDQUFDLENBQUM7RUFFcEIsSUFBTWMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUEsRUFBUztJQUN2QixJQUFJNUIsT0FBTyxFQUFFO01BQ1gsb0JBQU9qQixJQUFBLENBQUNQLGdCQUFnQjtRQUFBcUQsUUFBQSxFQUFFZixDQUFDLENBQUMsd0JBQXdCLEVBQUU7VUFBRVksWUFBWSxFQUFFO1FBQWMsQ0FBQztNQUFDLENBQW1CLENBQUM7SUFDNUc7SUFDQSxJQUFJekIsS0FBSyxFQUFFO01BQ1Qsb0JBQ0VsQixJQUFBLENBQUNQLGdCQUFnQjtRQUFBcUQsUUFBQSxFQUNkZixDQUFDLENBQUMsc0JBQXNCLEVBQUU7VUFBRVksWUFBWSxFQUFFO1FBQTZCLENBQUM7TUFBQyxDQUMxRCxDQUFDO0lBRXZCO0lBQ0EsSUFBSTNCLEtBQUssQ0FBQ3VCLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdEIsb0JBQU92QyxJQUFBLENBQUNQLGdCQUFnQjtRQUFBcUQsUUFBQSxFQUFFTjtNQUFZLENBQW1CLENBQUM7SUFDNUQ7SUFDQSxvQkFDRXRDLEtBQUEsQ0FBQ1YsUUFBUTtNQUNQdUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUVDLENBQUMsRUFBSTtRQUNiLElBQUksQ0FBQzFCLGNBQWMsSUFBSSxDQUFDRixPQUFPLElBQUlDLGFBQWEsRUFBRTtRQUNsRCxJQUFNNEIsRUFBRSxHQUFHRCxDQUFDLENBQUNFLGFBQWE7UUFDMUIsSUFBTUMsU0FBUyxHQUFHLEVBQUU7UUFDcEIsSUFBTUMsVUFBVSxHQUFHSCxFQUFFLENBQUNJLFNBQVMsR0FBR0osRUFBRSxDQUFDSyxZQUFZLElBQUlMLEVBQUUsQ0FBQ00sWUFBWSxHQUFHSixTQUFTO1FBQ2hGLElBQUlDLFVBQVUsRUFBRTtVQUNkO1VBQ0FJLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLDJEQUEyRCxFQUFFO1lBQ3hFSixTQUFTLEVBQUVKLEVBQUUsQ0FBQ0ksU0FBUztZQUN2QkMsWUFBWSxFQUFFTCxFQUFFLENBQUNLLFlBQVk7WUFDN0JDLFlBQVksRUFBRU4sRUFBRSxDQUFDTSxZQUFZO1lBQzdCbkMsT0FBTyxFQUFQQSxPQUFPO1lBQ1BDLGFBQWEsRUFBYkE7VUFDRixDQUFDLENBQUM7VUFDRkMsY0FBYyxDQUFDLENBQUM7UUFDbEI7TUFDRixDQUFFO01BQUF3QixRQUFBLEdBRUQsQ0FBQ3ZCLFdBQVcsQ0FBQ2tCLElBQUksQ0FBQyxDQUFDLElBQUkzQixVQUFVLEtBQUssTUFBTSxJQUFJLENBQUNLLGdCQUFnQixnQkFDaEVuQixJQUFBLENBQUNWLGNBQWM7UUFBQXdELFFBQUEsZUFDYjlDLElBQUEsQ0FBQ1QsZ0JBQWdCO1VBQUF1RCxRQUFBLGVBQ2Y5QyxJQUFBLENBQUNYLGdCQUFnQjtZQUFBeUQsUUFBQSxFQUFFZixDQUFDLENBQUMsNkJBQTZCLEVBQUU7Y0FBRVksWUFBWSxFQUFFO1lBQVksQ0FBQztVQUFDLENBQW1CO1FBQUMsQ0FDdEY7TUFBQyxDQUNMLENBQUMsR0FDZixJQUFJLEVBQ1AzQixLQUFLLENBQUMwQyxHQUFHLENBQUMsVUFBQ0MsSUFBSSxFQUFFckIsR0FBRztRQUFBLG9CQUNuQnRDLElBQUEsQ0FBQ2hCLGtCQUFrQjtVQUVqQjJFLElBQUksRUFBRUEsSUFBSztVQUNYQyxNQUFNLEVBQUV0QixHQUFHLEtBQUtaLFdBQVk7VUFDNUJtQyxRQUFRLEVBQUVyQyxjQUFlO1VBQ3pCc0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7WUFBQSxPQUFRekIsaUJBQWlCLENBQUNDLEdBQUcsQ0FBQztVQUFBO1FBQUMsTUFBQU0sTUFBQSxDQUo5QmUsSUFBSSxDQUFDSSxJQUFJLE9BQUFuQixNQUFBLENBQUllLElBQUksQ0FBQ0ssRUFBRSxDQUs3QixDQUFDO01BQUEsQ0FDSCxDQUFDLEVBQ0QzQyxhQUFhLGdCQUNackIsSUFBQSxDQUFDRixlQUFlO1FBQUFnRCxRQUFBLGVBQ2Q5QyxJQUFBLENBQUNmLE1BQU07VUFBQ2dGLElBQUksRUFBQztRQUFPLENBQUU7TUFBQyxDQUNSLENBQUMsR0FDaEIsSUFBSTtJQUFBLENBQ0EsQ0FBQztFQUVmLENBQUM7RUFFRCxvQkFDRS9ELEtBQUEsQ0FBQ2hCLGFBQWE7SUFBQzBCLEdBQUcsRUFBRUEsR0FBSTtJQUFDZ0IsS0FBSyxFQUFFQSxLQUFNO0lBQUNzQyxJQUFJLEVBQUMsU0FBUztJQUFDLGNBQVcsd0JBQXdCO0lBQUFwQixRQUFBLGdCQUN2RjVDLEtBQUEsQ0FBQ0wsV0FBVztNQUFBaUQsUUFBQSxnQkFDVjlDLElBQUEsQ0FBQ0osYUFBYTtRQUFBa0QsUUFBQSxFQUNYakMsWUFBWSxDQUFDNkMsR0FBRyxDQUFDLFVBQUNLLElBQUksRUFBRUksUUFBUSxFQUFLO1VBQ3BDLElBQU1DLEtBQUssR0FBR3JDLENBQUMsQ0FBQzVCLGFBQWEsQ0FBQzRELElBQUksQ0FBQyxFQUFFO1lBQUVwQixZQUFZLEVBQUVsQyxhQUFhLENBQUNzRCxJQUFJO1VBQUUsQ0FBQyxDQUFDO1VBQzNFLElBQU1NLFFBQVEsR0FBRyxHQUFHLENBQUNDLE1BQU0sQ0FBQ0gsUUFBUSxHQUFHLENBQUMsQ0FBQztVQUN6QyxvQkFDRWpFLEtBQUEsQ0FBQ1AsT0FBTztZQUVOb0UsSUFBSSxFQUFDLFFBQVE7WUFDYixpQkFBQW5CLE1BQUEsQ0FBZXlCLFFBQVEsT0FBQXpCLE1BQUEsQ0FBSXdCLEtBQUssQ0FBRztZQUNuQ0csT0FBTyxFQUFFUixJQUFJLEtBQUtqRCxVQUFXO1lBQzdCMEQsV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUV4QixDQUFDLEVBQUk7Y0FDaEJBLENBQUMsQ0FBQ3lCLGNBQWMsQ0FBQyxDQUFDO2NBQ2xCMUQsWUFBWSxDQUFDZ0QsSUFBSSxDQUFDO1lBQ3BCLENBQUU7WUFBQWpCLFFBQUEsR0FFRHVCLFFBQVEsRUFDUkQsS0FBSztVQUFBLEdBVkRMLElBV0UsQ0FBQztRQUVkLENBQUM7TUFBQyxDQUNXLENBQUMsZUFDaEIvRCxJQUFBLENBQUNsQixPQUFPO1FBQUM0RixLQUFLLEVBQUU3QyxZQUFZLElBQUksRUFBRztRQUFBaUIsUUFBQSxlQUNqQzlDLElBQUEsQ0FBQ04sZ0JBQWdCO1VBQUFvRCxRQUFBLGVBQ2Y5QyxJQUFBLENBQUNuQixpQkFBaUI7WUFBQzhGLEtBQUssRUFBRSxFQUFHO1lBQUNDLE1BQU0sRUFBRSxFQUFHO1lBQUNDLEtBQUssRUFBQztVQUFTLENBQUU7UUFBQyxDQUM1QztNQUFDLENBQ1osQ0FBQztJQUFBLENBQ0MsQ0FBQyxlQUNkN0UsSUFBQSxDQUFDWixrQkFBa0I7TUFBQTBELFFBQUEsZUFDakI5QyxJQUFBLENBQUNiLFdBQVcsSUFBRTtJQUFDLENBQ0csQ0FBQyxFQUNwQjBELFVBQVUsQ0FBQyxDQUFDO0VBQUEsQ0FDQSxDQUFDO0FBRXBCLENBQ0YsQ0FBQztBQUVEbkMscUJBQXFCLENBQUNvRSxXQUFXLEdBQUcsdUJBQXVCIiwiaWdub3JlTGlzdCI6W119
@@ -1,79 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- /**
4
- * Anchor fixed-positioned que envuelve al popover cuando se lo porta a
5
- * `document.body`. El ancho coincide con el input; `bottom` ancla el panel
6
- * por encima del borde superior del ancla/input.
7
- */
8
- export var SCMPAnchor = styled.div.withConfig({
9
- displayName: "ContextMentionPopoverstyles__SCMPAnchor",
10
- componentId: "sc-14gtt3h-0"
11
- })(["position:fixed;bottom:", ";left:", ";width:", ";box-sizing:border-box;z-index:1200;"], function (_ref) {
12
- var $bottom = _ref.$bottom;
13
- return "".concat($bottom, "px");
14
- }, function (_ref2) {
15
- var $left = _ref2.$left;
16
- return "".concat($left, "px");
17
- }, function (_ref3) {
18
- var $width = _ref3.$width;
19
- return "".concat($width, "px");
20
- });
21
- export var SCMPContainer = styled.div.withConfig({
22
- displayName: "ContextMentionPopoverstyles__SCMPContainer",
23
- componentId: "sc-14gtt3h-1"
24
- })(["display:flex;width:100%;box-sizing:border-box;padding:12px 0;flex-direction:column;align-items:center;gap:8px;height:266px;min-height:266px;max-height:266px;border-radius:4px;border:1px solid #e0e0e0;background:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.08),0 1px 4px 0 rgba(0,0,0,0.04);z-index:1000;"]);
25
- export var SCMPTabsRow = styled.div.withConfig({
26
- displayName: "ContextMentionPopoverstyles__SCMPTabsRow",
27
- componentId: "sc-14gtt3h-2"
28
- })(["display:flex;padding:4px 16px;align-items:center;justify-content:space-between;gap:10px;align-self:stretch;flex-shrink:0;"]);
29
- export var SCMPTabsGroup = styled.div.withConfig({
30
- displayName: "ContextMentionPopoverstyles__SCMPTabsGroup",
31
- componentId: "sc-14gtt3h-3"
32
- })(["display:flex;align-items:center;gap:16px;"]);
33
- export var SCMPKeyboardHint = styled.div.withConfig({
34
- displayName: "ContextMentionPopoverstyles__SCMPKeyboardHint",
35
- componentId: "sc-14gtt3h-4"
36
- })(["display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;user-select:none;cursor:default;"]);
37
- export var SCMPTab = styled.button.withConfig({
38
- displayName: "ContextMentionPopoverstyles__SCMPTab",
39
- componentId: "sc-14gtt3h-5"
40
- })(["display:flex;padding:0 0 2px;justify-content:center;align-items:center;gap:10px;background:transparent;border:none;border-bottom:1px solid ", ";cursor:pointer;font-family:var(--cor-typography-font-family,'Work Sans');font-size:var(--cor-typography-font-size-sm,14px);font-style:normal;font-weight:500;line-height:var(--cor-typography-line-height-20,20px);letter-spacing:var(--cor-typography-letter-spacing-0,0);color:", ";transition:color 0.12s ease;&:hover{color:var(--cor-color-grey-900,#202020);}"], function (_ref4) {
41
- var $active = _ref4.$active;
42
- return $active ? 'var(--cor-color-grey-900, #202020)' : 'transparent';
43
- }, function (_ref5) {
44
- var $active = _ref5.$active;
45
- return $active ? 'var(--cor-color-grey-900, #202020)' : 'var(--cor-color-text-secondary, #666)';
46
- });
47
- export var SCMPDividerWrapper = styled.div.withConfig({
48
- displayName: "ContextMentionPopoverstyles__SCMPDividerWrapper",
49
- componentId: "sc-14gtt3h-6"
50
- })(["display:flex;padding:0 8px;flex-direction:column;align-items:flex-start;gap:10px;align-self:stretch;flex-shrink:0;"]);
51
- export var SCMPDivider = styled.div.withConfig({
52
- displayName: "ContextMentionPopoverstyles__SCMPDivider",
53
- componentId: "sc-14gtt3h-7"
54
- })(["width:100%;height:1px;background:var(--cor-color-grey-300,#d9d9d9);"]);
55
- export var SCMPList = styled.div.withConfig({
56
- displayName: "ContextMentionPopoverstyles__SCMPList",
57
- componentId: "sc-14gtt3h-8"
58
- })(["display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;&::-webkit-scrollbar{width:6px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px;}"]);
59
- export var SCMPRecentsRow = styled.div.withConfig({
60
- displayName: "ContextMentionPopoverstyles__SCMPRecentsRow",
61
- componentId: "sc-14gtt3h-9"
62
- })(["display:flex;padding:4px 16px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;flex-shrink:0;align-self:stretch;border-radius:4px;"]);
63
- export var SCMPRecentsTitle = styled.div.withConfig({
64
- displayName: "ContextMentionPopoverstyles__SCMPRecentsTitle",
65
- componentId: "sc-14gtt3h-10"
66
- })(["display:flex;padding:0;align-items:center;gap:8px;"]);
67
- export var SCMPRecentsLabel = styled.span.withConfig({
68
- displayName: "ContextMentionPopoverstyles__SCMPRecentsLabel",
69
- componentId: "sc-14gtt3h-11"
70
- })(["color:var(--cor-color-text-secondary,#4d4d4d);font-family:var(--cor-typography-font-family,'Work Sans');font-size:var(--cor-typography-font-size-sm,14px);font-style:normal;font-weight:400;line-height:var(--cor-typography-line-height-20,20px);letter-spacing:var(--cor-typography-letter-spacing-0,0);"]);
71
- export var SCMPStateWrapper = styled.div.withConfig({
72
- displayName: "ContextMentionPopoverstyles__SCMPStateWrapper",
73
- componentId: "sc-14gtt3h-12"
74
- })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;align-self:stretch;flex:1 1 0;min-height:0;color:var(--cor-color-text-tertiary,#808080);font-family:var(--cor-typography-font-family,'Work Sans');font-size:var(--cor-typography-font-size-sm,14px);font-style:normal;font-weight:400;line-height:var(--cor-typography-line-height-20,20px);"]);
75
- export var SCMPLoadMoreRow = styled.div.withConfig({
76
- displayName: "ContextMentionPopoverstyles__SCMPLoadMoreRow",
77
- componentId: "sc-14gtt3h-13"
78
- })(["display:flex;justify-content:center;align-items:center;align-self:stretch;min-height:24px;padding:4px 0 8px;"]);
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ01QQW5jaG9yIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiJGJvdHRvbSIsImNvbmNhdCIsIl9yZWYyIiwiJGxlZnQiLCJfcmVmMyIsIiR3aWR0aCIsIlNDTVBDb250YWluZXIiLCJTQ01QVGFic1JvdyIsIlNDTVBUYWJzR3JvdXAiLCJTQ01QS2V5Ym9hcmRIaW50IiwiU0NNUFRhYiIsImJ1dHRvbiIsIl9yZWY0IiwiJGFjdGl2ZSIsIl9yZWY1IiwiU0NNUERpdmlkZXJXcmFwcGVyIiwiU0NNUERpdmlkZXIiLCJTQ01QTGlzdCIsIlNDTVBSZWNlbnRzUm93IiwiU0NNUFJlY2VudHNUaXRsZSIsIlNDTVBSZWNlbnRzTGFiZWwiLCJzcGFuIiwiU0NNUFN0YXRlV3JhcHBlciIsIlNDTVBMb2FkTW9yZVJvdyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3Zlci9Db250ZXh0TWVudGlvblBvcG92ZXIuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG4vKipcbiAqIEFuY2hvciBmaXhlZC1wb3NpdGlvbmVkIHF1ZSBlbnZ1ZWx2ZSBhbCBwb3BvdmVyIGN1YW5kbyBzZSBsbyBwb3J0YSBhXG4gKiBgZG9jdW1lbnQuYm9keWAuIEVsIGFuY2hvIGNvaW5jaWRlIGNvbiBlbCBpbnB1dDsgYGJvdHRvbWAgYW5jbGEgZWwgcGFuZWxcbiAqIHBvciBlbmNpbWEgZGVsIGJvcmRlIHN1cGVyaW9yIGRlbCBhbmNsYS9pbnB1dC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDTVBBbmNob3IgPSBzdHlsZWQuZGl2PHsgJGJvdHRvbTogbnVtYmVyOyAkbGVmdDogbnVtYmVyOyAkd2lkdGg6IG51bWJlciB9PmBcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206ICR7KHsgJGJvdHRvbSB9KSA9PiBgJHskYm90dG9tfXB4YH07XG4gIGxlZnQ6ICR7KHsgJGxlZnQgfSkgPT4gYCR7JGxlZnR9cHhgfTtcbiAgd2lkdGg6ICR7KHsgJHdpZHRoIH0pID0+IGAkeyR3aWR0aH1weGB9O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAxMjAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNUENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBoZWlnaHQ6IDI2NnB4O1xuICBtaW4taGVpZ2h0OiAyNjZweDtcbiAgbWF4LWhlaWdodDogMjY2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLFxuICAgIDAgMXB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIHotaW5kZXg6IDEwMDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01QVGFic1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDRweCAxNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01QVGFic0dyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNUEtleWJvYXJkSGludCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVBUYWIgPSBzdHlsZWQuYnV0dG9uPHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAgMCAycHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAndmFyKC0tY29yLWNvbG9yLWdyZXktOTAwLCAjMjAyMDIwKScgOiAndHJhbnNwYXJlbnQnKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1zaXplLXNtLCAxNHB4KTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogdmFyKC0tY29yLXR5cG9ncmFwaHktbGluZS1oZWlnaHQtMjAsIDIwcHgpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY29yLXR5cG9ncmFwaHktbGV0dGVyLXNwYWNpbmctMCwgMCk7XG4gIGNvbG9yOiAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAndmFyKC0tY29yLWNvbG9yLWdyZXktOTAwLCAjMjAyMDIwKScgOiAndmFyKC0tY29yLWNvbG9yLXRleHQtc2Vjb25kYXJ5LCAjNjY2KScpfTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tY29yLWNvbG9yLWdyZXktOTAwLCAjMjAyMDIwKTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNUERpdmlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEwcHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNUERpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvci1jb2xvci1ncmV5LTMwMCwgI2Q5ZDlkOSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01QTGlzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBnYXA6IDRweDtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDZweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDBkMGQwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNUFJlY2VudHNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiA0cHggMTZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVBSZWNlbnRzVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVBSZWNlbnRzTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6IHZhcigtLWNvci1jb2xvci10ZXh0LXNlY29uZGFyeSwgIzRkNGQ0ZCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXNpemU6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtc2l6ZS1zbSwgMTRweCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWNvci10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LTIwLCAyMHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNvci10eXBvZ3JhcGh5LWxldHRlci1zcGFjaW5nLTAsIDApO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNUFN0YXRlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4IDE2cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBjb2xvcjogdmFyKC0tY29yLWNvbG9yLXRleHQtdGVydGlhcnksICM4MDgwODApO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LXNpemUtc20sIDE0cHgpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1saW5lLWhlaWdodC0yMCwgMjBweCk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01QTG9hZE1vcmVSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWluLWhlaWdodDogMjRweDtcbiAgcGFkZGluZzogNHB4IDAgOHB4O1xuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sbUJBQW1COztBQUV0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxVQUFVLEdBQUdELE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRGQUV4QixVQUFBQyxJQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87RUFBQSxVQUFBQyxNQUFBLENBQVVELE9BQU87QUFBQSxDQUFJLEVBQ2pDLFVBQUFFLEtBQUE7RUFBQSxJQUFHQyxLQUFLLEdBQUFELEtBQUEsQ0FBTEMsS0FBSztFQUFBLFVBQUFG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
@@ -1,3 +0,0 @@
1
- export { ContextMentionPopover } from './ContextMentionPopover';
2
- export { SCMPAnchor } from './ContextMentionPopover.styles';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0TWVudGlvblBvcG92ZXIiLCJTQ01QQW5jaG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbnRleHRNZW50aW9uUG9wb3ZlciB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuZXhwb3J0IHR5cGUgeyBDb250ZXh0TWVudGlvblBvcG92ZXJQcm9wcyB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuZXhwb3J0IHsgU0NNUEFuY2hvciB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyLnN0eWxlcydcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EscUJBQXFCLFFBQVEseUJBQXlCO0FBRS9ELFNBQVNDLFVBQVUsUUFBUSxnQ0FBZ0MiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,269 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
- /* eslint-disable no-restricted-syntax */
6
- /* eslint-disable no-continue */
7
- /* eslint-disable no-void */
8
- /* eslint-disable prefer-destructuring */
9
- import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
10
- import { StyledMAIAInput } from './styles';
11
-
12
- /**
13
- * Líneas visuales con wrap de palabras al ancho dado (aprox. el navegador en LTR).
14
- */
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- function countVisualLinesWrapped(raw, contentWidthPx, measureTextWidth) {
17
- if (contentWidthPx <= 1) {
18
- return 1;
19
- }
20
- var paragraphs = raw.split('\n');
21
- var total = 0;
22
- var _iterator = _createForOfIteratorHelper(paragraphs),
23
- _step;
24
- try {
25
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
26
- var paragraph = _step.value;
27
- if (paragraph.length === 0) {
28
- total += 1;
29
- continue;
30
- }
31
- var words = paragraph.split(/\s+/).filter(function (w) {
32
- return w.length > 0;
33
- });
34
- var linesInParagraph = 1;
35
- var currentLineWidth = 0;
36
- for (var i = 0; i < words.length; i += 1) {
37
- var word = words[i];
38
- var wordWidth = measureTextWidth(word);
39
- var spaceWidth = i > 0 ? measureTextWidth(' ') : 0;
40
- if (wordWidth > contentWidthPx) {
41
- if (currentLineWidth > 0) {
42
- linesInParagraph += 1;
43
- currentLineWidth = 0;
44
- }
45
- linesInParagraph += Math.ceil(wordWidth / contentWidthPx) - 1;
46
- continue;
47
- }
48
- var candidateWidth = currentLineWidth === 0 ? wordWidth : currentLineWidth + spaceWidth + wordWidth;
49
- if (candidateWidth > contentWidthPx && currentLineWidth > 0) {
50
- linesInParagraph += 1;
51
- currentLineWidth = wordWidth;
52
- } else {
53
- currentLineWidth = candidateWidth;
54
- }
55
- }
56
- total += linesInParagraph;
57
- }
58
- } catch (err) {
59
- _iterator.e(err);
60
- } finally {
61
- _iterator.f();
62
- }
63
- return Math.max(1, total);
64
- }
65
- export var MAIAInputEditor = function MAIAInputEditor(_ref) {
66
- var inputRef = _ref.inputRef,
67
- disabled = _ref.disabled,
68
- placeholder = _ref.placeholder,
69
- alignButtons = _ref.alignButtons,
70
- compactSingleRowToolbar = _ref.compactSingleRowToolbar,
71
- setIsTextMultiline = _ref.setIsTextMultiline,
72
- chatId = _ref.chatId,
73
- newChatKey = _ref.newChatKey,
74
- clearSeq = _ref.clearSeq,
75
- sendDisabled = _ref.sendDisabled,
76
- onTypingPresenceChange = _ref.onTypingPresenceChange,
77
- onEnterSend = _ref.onEnterSend,
78
- onChangeProp = _ref.onChangeProp;
79
- var textareaMinContentWidthSeenRef = useRef(null);
80
- var presencePrevRef = useRef(false);
81
- /** Solo para re-agendar medición de alto sin guardar el string en el padre (aisla re-renders del toolbar). */
82
- var _useState = useState(0),
83
- _useState2 = _slicedToArray(_useState, 2),
84
- resizeEpoch = _useState2[0],
85
- setResizeEpoch = _useState2[1];
86
- var handleResize = useCallback(function () {
87
- var _textareaMinContentWi;
88
- var textarea = inputRef.current;
89
- if (!textarea) {
90
- return;
91
- }
92
-
93
- /** Coincide con StyledMAIAInput: line-height 20px sobre fuente 14px (~una línea de texto visible). */
94
- var minHeight = 20;
95
- var maxHeight = 120;
96
- var previousMinHeight = textarea.style.minHeight;
97
- var previousMaxHeight = textarea.style.maxHeight;
98
- textarea.style.height = 'auto';
99
- textarea.style.minHeight = '0px';
100
- textarea.style.maxHeight = 'none';
101
- void textarea.offsetHeight;
102
- var scrollHeight = textarea.scrollHeight;
103
- var computedStyle = window.getComputedStyle(textarea);
104
- var lineHeight = parseFloat(computedStyle.lineHeight) || 20;
105
- var paddingTop = parseFloat(computedStyle.paddingTop) || 0;
106
- var paddingBottom = parseFloat(computedStyle.paddingBottom) || 0;
107
- var borderTop = parseFloat(computedStyle.borderTopWidth) || 0;
108
- var borderBottom = parseFloat(computedStyle.borderBottomWidth) || 0;
109
- var singleLineHeight = lineHeight + paddingTop + paddingBottom + borderTop + borderBottom;
110
- var isEmpty = textarea.value.trim() === '';
111
- var paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
112
- var paddingRight = parseFloat(computedStyle.paddingRight) || 0;
113
- var borderLeft = parseFloat(computedStyle.borderLeftWidth) || 0;
114
- var borderRight = parseFloat(computedStyle.borderRightWidth) || 0;
115
- var textareaWidth = textarea.offsetWidth - paddingLeft - paddingRight - borderLeft - borderRight;
116
- if (!isEmpty) {
117
- textareaMinContentWidthSeenRef.current = textareaMinContentWidthSeenRef.current === null ? textareaWidth : Math.min(textareaMinContentWidthSeenRef.current, textareaWidth);
118
- }
119
- var wrapCheckWidth = (_textareaMinContentWi = textareaMinContentWidthSeenRef.current) !== null && _textareaMinContentWi !== void 0 ? _textareaMinContentWi : textareaWidth;
120
- var canvasMeasureIndicatesMultiline = false;
121
- var canvas = document.createElement('canvas');
122
- var canvasContext = canvas.getContext('2d');
123
- var text = textarea.value || '';
124
- var lines = text.split('\n');
125
- if (!canvasContext) {
126
- canvasMeasureIndicatesMultiline = scrollHeight > singleLineHeight * 2.05;
127
- } else {
128
- var textareaStyles = window.getComputedStyle(textarea);
129
- canvasContext.font = "".concat(textareaStyles.fontWeight, " ").concat(textareaStyles.fontSize, " ").concat(textareaStyles.fontFamily);
130
- if (lines.length > 1) {
131
- canvasMeasureIndicatesMultiline = true;
132
- } else {
133
- var _iterator2 = _createForOfIteratorHelper(lines),
134
- _step2;
135
- try {
136
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
137
- var line = _step2.value;
138
- if (line.trim() === '') continue;
139
- if (canvasContext.measureText(line).width > wrapCheckWidth) {
140
- canvasMeasureIndicatesMultiline = true;
141
- break;
142
- }
143
- }
144
- } catch (err) {
145
- _iterator2.e(err);
146
- } finally {
147
- _iterator2.f();
148
- }
149
- }
150
- }
151
- var hasMultipleVisualLines = canvasMeasureIndicatesMultiline;
152
- var nextMultiline = !isEmpty && hasMultipleVisualLines;
153
-
154
- /** Líneas según ancho estrecho (history min) — toolbar compacto y detección multiline */
155
- var visualLinesAtWrapWidth = 1;
156
- /** Líneas al ancho actual del textarea — en stacked suele ser mayor que wrapCheckWidth */
157
- var visualLinesAtCurrentWidth = 1;
158
- if (!isEmpty && canvasContext) {
159
- visualLinesAtWrapWidth = countVisualLinesWrapped(text, wrapCheckWidth, function (segment) {
160
- return canvasContext.measureText(segment).width;
161
- });
162
- visualLinesAtCurrentWidth = countVisualLinesWrapped(text, textareaWidth, function (segment) {
163
- return canvasContext.measureText(segment).width;
164
- });
165
- } else if (!isEmpty && !canvasContext) {
166
- visualLinesAtWrapWidth = scrollHeight > singleLineHeight * 1.85 ? Math.ceil(scrollHeight / singleLineHeight) : 1;
167
- visualLinesAtCurrentWidth = visualLinesAtWrapWidth;
168
- }
169
- var linesForHeight = !isEmpty && canvasContext ? visualLinesAtCurrentWidth : visualLinesAtWrapWidth;
170
- var newHeight;
171
- /** Una línea al ancho actual: altura fijada por tipografía (+ padding/borde), no scrollHeight — evita ~39px al pasar a stacked cuando el canvas ya cuenta 1 línea a ancho amplio pero scrollHeight aún viene de líneas viejas/wrap anterior. */
172
- var snappedSingleLineOuterHeight = Math.round(singleLineHeight);
173
- if (isEmpty) {
174
- newHeight = snappedSingleLineOuterHeight;
175
- } else if (!hasMultipleVisualLines) {
176
- newHeight = snappedSingleLineOuterHeight;
177
- } else if (linesForHeight <= 1) {
178
- newHeight = Math.min(Math.max(snappedSingleLineOuterHeight, minHeight), maxHeight);
179
- } else {
180
- var snappedHeight = paddingTop + paddingBottom + borderTop + borderBottom + linesForHeight * lineHeight;
181
- newHeight = Math.min(Math.max(Math.min(scrollHeight, snappedHeight), minHeight), maxHeight);
182
- }
183
- setIsTextMultiline(function (prev) {
184
- return prev === nextMultiline ? prev : nextMultiline;
185
- });
186
- textarea.style.minHeight = previousMinHeight || "".concat(minHeight, "px");
187
- textarea.style.maxHeight = previousMaxHeight || '120px';
188
- textarea.style.height = "".concat(newHeight, "px");
189
- }, [inputRef, setIsTextMultiline]);
190
-
191
- /** Compact↔stacked cambia el grid/CSS del textarea; medir en layout evita un frame con alto desincronizado (sobre todo compact→stacked). */
192
- useLayoutEffect(function () {
193
- handleResize();
194
- }, [compactSingleRowToolbar, handleResize]);
195
- useEffect(function () {
196
- var _inputRef$current;
197
- if (((_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value.trim()) === '') {
198
- textareaMinContentWidthSeenRef.current = null;
199
- }
200
- }, [resizeEpoch]);
201
- useEffect(function () {
202
- textareaMinContentWidthSeenRef.current = null;
203
- }, [chatId, newChatKey]);
204
- useEffect(function () {
205
- if (inputRef.current && !disabled) {
206
- inputRef.current.focus();
207
- requestAnimationFrame(function () {
208
- handleResize();
209
- });
210
- }
211
- }, [disabled, handleResize]);
212
- useEffect(function () {
213
- if (clearSeq === 0) {
214
- return;
215
- }
216
- textareaMinContentWidthSeenRef.current = null;
217
- presencePrevRef.current = false;
218
- requestAnimationFrame(function () {
219
- handleResize();
220
- });
221
- }, [clearSeq, handleResize]);
222
- useEffect(function () {
223
- var id = requestAnimationFrame(function () {
224
- handleResize();
225
- });
226
- return function () {
227
- return cancelAnimationFrame(id);
228
- };
229
- }, [resizeEpoch, handleResize]);
230
- var handleChange = function handleChange(e) {
231
- var hasTrim = e.target.value.trim().length > 0;
232
- if (hasTrim !== presencePrevRef.current) {
233
- presencePrevRef.current = hasTrim;
234
- onTypingPresenceChange(hasTrim);
235
- }
236
- setResizeEpoch(function (x) {
237
- return x + 1;
238
- });
239
- onChangeProp === null || onChangeProp === void 0 || onChangeProp();
240
- };
241
- var handleBlur = function handleBlur() {
242
- var _inputRef$current$val, _inputRef$current2;
243
- var v = (_inputRef$current$val = (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.value) !== null && _inputRef$current$val !== void 0 ? _inputRef$current$val : '';
244
- var hasTrim = v.trim().length > 0;
245
- if (hasTrim !== presencePrevRef.current) {
246
- presencePrevRef.current = hasTrim;
247
- onTypingPresenceChange(hasTrim);
248
- }
249
- };
250
- var handleKeyDown = function handleKeyDown(e) {
251
- if (e.key === 'Enter' && !e.shiftKey) {
252
- e.preventDefault();
253
- if (!sendDisabled && !disabled) {
254
- onEnterSend();
255
- }
256
- }
257
- };
258
- return /*#__PURE__*/_jsx(StyledMAIAInput, {
259
- ref: inputRef,
260
- disabled: disabled,
261
- onChange: handleChange,
262
- onKeyDown: handleKeyDown,
263
- placeholder: placeholder,
264
- alignButtons: alignButtons,
265
- $toolbarLayoutVariant: compactSingleRowToolbar ? 'compactRow' : 'stackedRows',
266
- onBlur: handleBlur
267
- });
268
- };
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiU3R5bGVkTUFJQUlucHV0IiwianN4IiwiX2pzeCIsImNvdW50VmlzdWFsTGluZXNXcmFwcGVkIiwicmF3IiwiY29udGVudFdpZHRoUHgiLCJtZWFzdXJlVGV4dFdpZHRoIiwicGFyYWdyYXBocyIsInNwbGl0IiwidG90YWwiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwicGFyYWdyYXBoIiwidmFsdWUiLCJsZW5ndGgiLCJ3b3JkcyIsImZpbHRlciIsInciLCJsaW5lc0luUGFyYWdyYXBoIiwiY3VycmVudExpbmVXaWR0aCIsImkiLCJ3b3JkIiwid29yZFdpZHRoIiwic3BhY2VXaWR0aCIsIk1hdGgiLCJjZWlsIiwiY2FuZGlkYXRlV2lkdGgiLCJlcnIiLCJlIiwiZiIsIm1heCIsIk1BSUFJbnB1dEVkaXRvciIsIl9yZWYiLCJpbnB1dFJlZiIsImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhbGlnbkJ1dHRvbnMiLCJjb21wYWN0U2luZ2xlUm93VG9vbGJhciIsInNldElzVGV4dE11bHRpbGluZSIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJjbGVhclNlcSIsInNlbmREaXNhYmxlZCIsIm9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UiLCJvbkVudGVyU2VuZCIsIm9uQ2hhbmdlUHJvcCIsInRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZiIsInByZXNlbmNlUHJldlJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJlc2l6ZUVwb2NoIiwic2V0UmVzaXplRXBvY2giLCJoYW5kbGVSZXNpemUiLCJfdGV4dGFyZWFNaW5Db250ZW50V2kiLCJ0ZXh0YXJlYSIsImN1cnJlbnQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJwcmV2aW91c01pbkhlaWdodCIsInN0eWxlIiwicHJldmlvdXNNYXhIZWlnaHQiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjb21wdXRlZFN0eWxlIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckJvdHRvbSIsImJvcmRlckJvdHRvbVdpZHRoIiwic2luZ2xlTGluZUhlaWdodCIsImlzRW1wdHkiLCJ0cmltIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwidGV4dGFyZWFXaWR0aCIsIm9mZnNldFdpZHRoIiwibWluIiwid3JhcENoZWNrV2lkdGgiLCJjYW52YXNNZWFzdXJlSW5kaWNhdGVzTXVsdGlsaW5lIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2FudmFzQ29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0IiwibGluZXMiLCJ0ZXh0YXJlYVN0eWxlcyIsImZvbnQiLCJjb25jYXQiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImxpbmUiLCJtZWFzdXJlVGV4dCIsIndpZHRoIiwiaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyIsIm5leHRNdWx0aWxpbmUiLCJ2aXN1YWxMaW5lc0F0V3JhcFdpZHRoIiwidmlzdWFsTGluZXNBdEN1cnJlbnRXaWR0aCIsInNlZ21lbnQiLCJsaW5lc0ZvckhlaWdodCIsIm5ld0hlaWdodCIsInNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHQiLCJyb3VuZCIsInNuYXBwZWRIZWlnaHQiLCJwcmV2IiwiX2lucHV0UmVmJGN1cnJlbnQiLCJmb2N1cyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlkIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJoYW5kbGVDaGFuZ2UiLCJoYXNUcmltIiwidGFyZ2V0IiwieCIsImhhbmRsZUJsdXIiLCJfaW5wdXRSZWYkY3VycmVudCR2YWwiLCJfaW5wdXRSZWYkY3VycmVudDIiLCJ2IiwiaGFuZGxlS2V5RG93biIsImtleSIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJyZWYiLCJvbkNoYW5nZSIsIm9uS2V5RG93biIsIiR0b29sYmFyTGF5b3V0VmFyaWFudCIsIm9uQmx1ciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXRFZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdm9pZCAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbmltcG9ydCB7IENoYW5nZUV2ZW50LCBLZXlib2FyZEV2ZW50LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2gsIFJlZk9iamVjdCwgU2V0U3RhdGVBY3Rpb24gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgU3R5bGVkTUFJQUlucHV0IH0gZnJvbSAnLi9zdHlsZXMnXG5cbi8qKlxuICogTMOtbmVhcyB2aXN1YWxlcyBjb24gd3JhcCBkZSBwYWxhYnJhcyBhbCBhbmNobyBkYWRvIChhcHJveC4gZWwgbmF2ZWdhZG9yIGVuIExUUikuXG4gKi9cbmZ1bmN0aW9uIGNvdW50VmlzdWFsTGluZXNXcmFwcGVkKHJhdzogc3RyaW5nLCBjb250ZW50V2lkdGhQeDogbnVtYmVyLCBtZWFzdXJlVGV4dFdpZHRoOiAoczogc3RyaW5nKSA9PiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoY29udGVudFdpZHRoUHggPD0gMSkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgY29uc3QgcGFyYWdyYXBocyA9IHJhdy5zcGxpdCgnXFxuJylcbiAgbGV0IHRvdGFsID0gMFxuICBmb3IgKGNvbnN0IHBhcmFncmFwaCBvZiBwYXJhZ3JhcGhzKSB7XG4gICAgaWYgKHBhcmFncmFwaC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRvdGFsICs9IDFcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHdvcmRzID0gcGFyYWdyYXBoLnNwbGl0KC9cXHMrLykuZmlsdGVyKHcgPT4gdy5sZW5ndGggPiAwKVxuICAgIGxldCBsaW5lc0luUGFyYWdyYXBoID0gMVxuICAgIGxldCBjdXJyZW50TGluZVdpZHRoID0gMFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IHdvcmQgPSB3b3Jkc1tpXVxuICAgICAgY29uc3Qgd29yZFdpZHRoID0gbWVhc3VyZVRleHRXaWR0aCh3b3JkKVxuICAgICAgY29uc3Qgc3BhY2VXaWR0aCA9IGkgPiAwID8gbWVhc3VyZVRleHRXaWR0aCgnICcpIDogMFxuXG4gICAgICBpZiAod29yZFdpZHRoID4gY29udGVudFdpZHRoUHgpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRMaW5lV2lkdGggPiAwKSB7XG4gICAgICAgICAgbGluZXNJblBhcmFncmFwaCArPSAxXG4gICAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IDBcbiAgICAgICAgfVxuICAgICAgICBsaW5lc0luUGFyYWdyYXBoICs9IE1hdGguY2VpbCh3b3JkV2lkdGggLyBjb250ZW50V2lkdGhQeCkgLSAxXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbmRpZGF0ZVdpZHRoID0gY3VycmVudExpbmVXaWR0aCA9PT0gMCA/IHdvcmRXaWR0aCA6IGN1cnJlbnRMaW5lV2lkdGggKyBzcGFjZVdpZHRoICsgd29yZFdpZHRoXG4gICAgICBpZiAoY2FuZGlkYXRlV2lkdGggPiBjb250ZW50V2lkdGhQeCAmJiBjdXJyZW50TGluZVdpZHRoID4gMCkge1xuICAgICAgICBsaW5lc0luUGFyYWdyYXBoICs9IDFcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IHdvcmRXaWR0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IGNhbmRpZGF0ZVdpZHRoXG4gICAgICB9XG4gICAgfVxuICAgIHRvdGFsICs9IGxpbmVzSW5QYXJhZ3JhcGhcbiAgfVxuICByZXR1cm4gTWF0aC5tYXgoMSwgdG90YWwpXG59XG5cbmV4cG9ydCB0eXBlIE1BSUFJbnB1dEVkaXRvclByb3BzID0ge1xuICBpbnB1dFJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBudWxsPlxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcjogYm9vbGVhblxuICBzZXRJc1RleHRNdWx0aWxpbmU6IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPGJvb2xlYW4+PlxuICBjaGF0SWQ/OiBzdHJpbmdcbiAgbmV3Q2hhdEtleT86IG51bWJlclxuICAvKiogSW5jcmVtZW50YXIgZGVzZGUgZWwgcGFkcmUgdHJhcyBlbnZpYXIgLyBjYW1iaWFyIHNlc2nDs24gcGFyYSBzaW5jcm9uaXphciBtZWRpY2nDs24gc2luIGVzdGFkbyBkZWwgdGV4dG8gZW4gZWwgcGFkcmUuICovXG4gIGNsZWFyU2VxOiBudW1iZXJcbiAgc2VuZERpc2FibGVkOiBib29sZWFuXG4gIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2U6IChoYXNUcmltbWVkVGV4dDogYm9vbGVhbikgPT4gdm9pZFxuICBvbkVudGVyU2VuZDogKCkgPT4gdm9pZFxuICBvbkNoYW5nZVByb3A/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXRFZGl0b3IgPSAoe1xuICBpbnB1dFJlZixcbiAgZGlzYWJsZWQsXG4gIHBsYWNlaG9sZGVyLFxuICBhbGlnbkJ1dHRvbnMsXG4gIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyLFxuICBzZXRJc1RleHRNdWx0aWxpbmUsXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgY2xlYXJTZXEsXG4gIHNlbmREaXNhYmxlZCxcbiAgb25UeXBpbmdQcmVzZW5jZUNoYW5nZSxcbiAgb25FbnRlclNlbmQsXG4gIG9uQ2hhbmdlUHJvcCxcbn06IE1BSUFJbnB1dEVkaXRvclByb3BzKSA9PiB7XG4gIGNvbnN0IHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKVxuICBjb25zdCBwcmVzZW5jZVByZXZSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIC8qKiBTb2xvIHBhcmEgcmUtYWdlbmRhciBtZWRpY2nDs24gZGUgYWx0byBzaW4gZ3VhcmRhciBlbCBzdHJpbmcgZW4gZWwgcGFkcmUgKGFpc2xhIHJlLXJlbmRlcnMgZGVsIHRvb2xiYXIpLiAqL1xuICBjb25zdCBbcmVzaXplRXBvY2gsIHNldFJlc2l6ZUVwb2NoXSA9IHVzZVN0YXRlKDApXG5cbiAgY29uc3QgaGFuZGxlUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHRleHRhcmVhID0gaW5wdXRSZWYuY3VycmVudFxuICAgIGlmICghdGV4dGFyZWEpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8qKiBDb2luY2lkZSBjb24gU3R5bGVkTUFJQUlucHV0OiBsaW5lLWhlaWdodCAyMHB4IHNvYnJlIGZ1ZW50ZSAxNHB4ICh+dW5hIGzDrW5lYSBkZSB0ZXh0byB2aXNpYmxlKS4gKi9cbiAgICBjb25zdCBtaW5IZWlnaHQgPSAyMFxuICAgIGNvbnN0IG1heEhlaWdodCA9IDEyMFxuXG4gICAgY29uc3QgcHJldmlvdXNNaW5IZWlnaHQgPSB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHRcbiAgICBjb25zdCBwcmV2aW91c01heEhlaWdodCA9IHRleHRhcmVhLnN0eWxlLm1heEhlaWdodFxuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gJzBweCdcbiAgICB0ZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSAnbm9uZSdcblxuICAgIHZvaWQgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0XG5cbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHRcblxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSlcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpIHx8IDIwXG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKSB8fCAwXG4gICAgY29uc3QgcGFkZGluZ0JvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nQm90dG9tKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyVG9wID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlclRvcFdpZHRoKSB8fCAwXG4gICAgY29uc3QgYm9yZGVyQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKSB8fCAwXG5cbiAgICBjb25zdCBzaW5nbGVMaW5lSGVpZ2h0ID0gbGluZUhlaWdodCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tXG5cbiAgICBjb25zdCBpc0VtcHR5ID0gdGV4dGFyZWEudmFsdWUudHJpbSgpID09PSAnJ1xuXG4gICAgY29uc3QgcGFkZGluZ0xlZnQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ0xlZnQpIHx8IDBcbiAgICBjb25zdCBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSB8fCAwXG4gICAgY29uc3QgYm9yZGVyTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGgpIHx8IDBcbiAgICBjb25zdCBib3JkZXJSaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5ib3JkZXJSaWdodFdpZHRoKSB8fCAwXG4gICAgY29uc3QgdGV4dGFyZWFXaWR0aCA9IHRleHRhcmVhLm9mZnNldFdpZHRoIC0gcGFkZGluZ0xlZnQgLSBwYWRkaW5nUmlnaHQgLSBib3JkZXJMZWZ0IC0gYm9yZGVyUmlnaHRcblxuICAgIGlmICghaXNFbXB0eSkge1xuICAgICAgdGV4dGFyZWFNaW5Db250ZW50V2lkdGhTZWVuUmVmLmN1cnJlbnQgPVxuICAgICAgICB0ZXh0YXJlYU1pbkNvbnRlbnRXaWR0aFNlZW5SZWYuY3VycmVudCA9PT0gbnVsbFxuICAgICAgICAgID8gdGV4dGFyZWFXaWR0aFxuICAgICAgICAgIDogTWF0aC5taW4odGV4dGFyZWFNaW5Db250ZW50V2lkdGhTZWVuUmVmLmN1cnJlbnQsIHRleHRhcmVhV2lkdGgpXG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcENoZWNrV2lkdGggPSB0ZXh0YXJlYU1pbkNvbnRlbnRXaWR0aFNlZW5SZWYuY3VycmVudCA/PyB0ZXh0YXJlYVdpZHRoXG5cbiAgICBsZXQgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IGZhbHNlXG5cbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKVxuICAgIGNvbnN0IGNhbnZhc0NvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuICAgIGNvbnN0IHRleHQgPSB0ZXh0YXJlYS52YWx1ZSB8fCAnJ1xuICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJylcblxuICAgIGlmICghY2FudmFzQ29udGV4dCkge1xuICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHNjcm9sbEhlaWdodCA+IHNpbmdsZUxpbmVIZWlnaHQgKiAyLjA1XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRleHRhcmVhU3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGV4dGFyZWEpXG4gICAgICBjYW52YXNDb250ZXh0LmZvbnQgPSBgJHt0ZXh0YXJlYVN0eWxlcy5mb250V2VpZ2h0fSAke3RleHRhcmVhU3R5bGVzLmZvbnRTaXplfSAke3RleHRhcmVhU3R5bGVzLmZvbnRGYW1pbHl9YFxuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycpIGNvbnRpbnVlXG4gICAgICAgICAgaWYgKGNhbnZhc0NvbnRleHQubWVhc3VyZVRleHQobGluZSkud2lkdGggPiB3cmFwQ2hlY2tXaWR0aCkge1xuICAgICAgICAgICAgY2FudmFzTWVhc3VyZUluZGljYXRlc011bHRpbGluZSA9IHRydWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzTXVsdGlwbGVWaXN1YWxMaW5lcyA9IGNhbnZhc01lYXN1cmVJbmRpY2F0ZXNNdWx0aWxpbmVcblxuICAgIGNvbnN0IG5leHRNdWx0aWxpbmUgPSAhaXNFbXB0eSAmJiBoYXNNdWx0aXBsZVZpc3VhbExpbmVzXG5cbiAgICAvKiogTMOtbmVhcyBzZWfDum4gYW5jaG8gZXN0cmVjaG8gKGhpc3RvcnkgbWluKSDigJQgdG9vbGJhciBjb21wYWN0byB5IGRldGVjY2nDs24gbXVsdGlsaW5lICovXG4gICAgbGV0IHZpc3VhbExpbmVzQXRXcmFwV2lkdGggPSAxXG4gICAgLyoqIEzDrW5lYXMgYWwgYW5jaG8gYWN0dWFsIGRlbCB0ZXh0YXJlYSDigJQgZW4gc3RhY2tlZCBzdWVsZSBzZXIgbWF5b3IgcXVlIHdyYXBDaGVja1dpZHRoICovXG4gICAgbGV0IHZpc3VhbExpbmVzQXRDdXJyZW50V2lkdGggPSAxXG4gICAgaWYgKCFpc0VtcHR5ICYmIGNhbnZhc0NvbnRleHQpIHtcbiAgICAgIHZpc3VhbExpbmVzQXRXcmFwV2lkdGggPSBjb3VudFZpc3VhbExpbmVzV3JhcHBlZChcbiAgICAgICAgdGV4dCxcbiAgICAgICAgd3JhcENoZWNrV2lkdGgsXG4gICAgICAgIHNlZ21lbnQgPT4gY2FudmFzQ29udGV4dC5tZWFzdXJlVGV4dChzZWdtZW50KS53aWR0aFxuICAgICAgKVxuICAgICAgdmlzdWFsTGluZXNBdEN1cnJlbnRXaWR0aCA9IGNvdW50VmlzdWFsTGluZXNXcmFwcGVkKFxuICAgICAgICB0ZXh0LFxuICAgICAgICB0ZXh0YXJlYVdpZHRoLFxuICAgICAgICBzZWdtZW50ID0+IGNhbnZhc0NvbnRleHQubWVhc3VyZVRleHQoc2VnbWVudCkud2lkdGhcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKCFpc0VtcHR5ICYmICFjYW52YXNDb250ZXh0KSB7XG4gICAgICB2aXN1YWxMaW5lc0F0V3JhcFdpZHRoID0gc2Nyb2xsSGVpZ2h0ID4gc2luZ2xlTGluZUhlaWdodCAqIDEuODUgPyBNYXRoLmNlaWwoc2Nyb2xsSGVpZ2h0IC8gc2luZ2xlTGluZUhlaWdodCkgOiAxXG4gICAgICB2aXN1YWxMaW5lc0F0Q3VycmVudFdpZHRoID0gdmlzdWFsTGluZXNBdFdyYXBXaWR0aFxuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzRm9ySGVpZ2h0ID0gIWlzRW1wdHkgJiYgY2FudmFzQ29udGV4dCA/IHZpc3VhbExpbmVzQXRDdXJyZW50V2lkdGggOiB2aXN1YWxMaW5lc0F0V3JhcFdpZHRoXG5cbiAgICBsZXQgbmV3SGVpZ2h0OiBudW1iZXJcbiAgICAvKiogVW5hIGzDrW5lYSBhbCBhbmNobyBhY3R1YWw6IGFsdHVyYSBmaWphZGEgcG9yIHRpcG9ncmFmw61hICgrIHBhZGRpbmcvYm9yZGUpLCBubyBzY3JvbGxIZWlnaHQg4oCUIGV2aXRhIH4zOXB4IGFsIHBhc2FyIGEgc3RhY2tlZCBjdWFuZG8gZWwgY2FudmFzIHlhIGN1ZW50YSAxIGzDrW5lYSBhIGFuY2hvIGFtcGxpbyBwZXJvIHNjcm9sbEhlaWdodCBhw7puIHZpZW5lIGRlIGzDrW5lYXMgdmllamFzL3dyYXAgYW50ZXJpb3IuICovXG4gICAgY29uc3Qgc25hcHBlZFNpbmdsZUxpbmVPdXRlckhlaWdodCA9IE1hdGgucm91bmQoc2luZ2xlTGluZUhlaWdodClcbiAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgbmV3SGVpZ2h0ID0gc25hcHBlZFNpbmdsZUxpbmVPdXRlckhlaWdodFxuICAgIH0gZWxzZSBpZiAoIWhhc011bHRpcGxlVmlzdWFsTGluZXMpIHtcbiAgICAgIG5ld0hlaWdodCA9IHNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHRcbiAgICB9IGVsc2UgaWYgKGxpbmVzRm9ySGVpZ2h0IDw9IDEpIHtcbiAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KHNuYXBwZWRTaW5nbGVMaW5lT3V0ZXJIZWlnaHQsIG1pbkhlaWdodCksIG1heEhlaWdodClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc25hcHBlZEhlaWdodCA9IHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyVG9wICsgYm9yZGVyQm90dG9tICsgbGluZXNGb3JIZWlnaHQgKiBsaW5lSGVpZ2h0XG4gICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChNYXRoLm1pbihzY3JvbGxIZWlnaHQsIHNuYXBwZWRIZWlnaHQpLCBtaW5IZWlnaHQpLCBtYXhIZWlnaHQpXG4gICAgfVxuXG4gICAgc2V0SXNUZXh0TXVsdGlsaW5lKHByZXYgPT4gKHByZXYgPT09IG5leHRNdWx0aWxpbmUgPyBwcmV2IDogbmV4dE11bHRpbGluZSkpXG5cbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSBwcmV2aW91c01pbkhlaWdodCB8fCBgJHttaW5IZWlnaHR9cHhgXG4gICAgdGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0ID0gcHJldmlvdXNNYXhIZWlnaHQgfHwgJzEyMHB4J1xuXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gYCR7bmV3SGVpZ2h0fXB4YFxuICB9LCBbaW5wdXRSZWYsIHNldElzVGV4dE11bHRpbGluZV0pXG5cbiAgLyoqIENvbXBhY3TihpRzdGFja2VkIGNhbWJpYSBlbCBncmlkL0NTUyBkZWwgdGV4dGFyZWE7IG1lZGlyIGVuIGxheW91dCBldml0YSB1biBmcmFtZSBjb24gYWx0byBkZXNpbmNyb25pemFkbyAoc29icmUgdG9kbyBjb21wYWN04oaSc3RhY2tlZCkuICovXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGFuZGxlUmVzaXplKClcbiAgfSwgW2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyLCBoYW5kbGVSZXNpemVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQ/LnZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfSwgW3Jlc2l6ZUVwb2NoXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbY2hhdElkLCBuZXdDaGF0S2V5XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbnB1dFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZCkge1xuICAgICAgaW5wdXRSZWYuY3VycmVudC5mb2N1cygpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNpemUoKVxuICAgICAgfSlcbiAgICB9XG4gIH0sIFtkaXNhYmxlZCwgaGFuZGxlUmVzaXplXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjbGVhclNlcSA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRleHRhcmVhTWluQ29udGVudFdpZHRoU2VlblJlZi5jdXJyZW50ID0gbnVsbFxuICAgIHByZXNlbmNlUHJldlJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgaGFuZGxlUmVzaXplKClcbiAgICB9KVxuICB9LCBbY2xlYXJTZXEsIGhhbmRsZVJlc2l6ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBoYW5kbGVSZXNpemUoKVxuICAgIH0pXG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKVxuICB9LCBbcmVzaXplRXBvY2gsIGhhbmRsZVJlc2l6ZV0pXG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGU6IENoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgaGFzVHJpbSA9IGUudGFyZ2V0LnZhbHVlLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgaWYgKGhhc1RyaW0gIT09IHByZXNlbmNlUHJldlJlZi5jdXJyZW50KSB7XG4gICAgICBwcmVzZW5jZVByZXZSZWYuY3VycmVudCA9IGhhc1RyaW1cbiAgICAgIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UoaGFzVHJpbSlcbiAgICB9XG4gICAgc2V0UmVzaXplRXBvY2goeCA9PiB4ICsgMSlcbiAgICBvbkNoYW5nZVByb3A/LigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHYgPSBpbnB1dFJlZi5jdXJyZW50Py52YWx1ZSA/PyAnJ1xuICAgIGNvbnN0IGhhc1RyaW0gPSB2LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgaWYgKGhhc1RyaW0gIT09IHByZXNlbmNlUHJldlJlZi5jdXJyZW50KSB7XG4gICAgICBwcmVzZW5jZVByZXZSZWYuY3VycmVudCA9IGhhc1RyaW1cbiAgICAgIG9uVHlwaW5nUHJlc2VuY2VDaGFuZ2UoaGFzVHJpbSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSB7XG4gICAgICAgIG9uRW50ZXJTZW5kKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRNQUlBSW5wdXRcbiAgICAgIHJlZj17aW5wdXRSZWYgYXMgUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+fVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhciA/ICdjb21wYWN0Um93JyA6ICdzdGFja2VkUm93cyd9XG4gICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgLz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFxQ0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEs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LGNBQWMsQ0FBQyxVQUFBMkUsQ0FBQztNQUFBLE9BQUlBLENBQUMsR0FBRyxDQUFDO0lBQUEsRUFBQztJQUMxQmxGLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUcsQ0FBQztFQUNsQixDQUFDO0VBRUQsSUFBTW1GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxrQkFBQTtJQUN2QixJQUFNQyxDQUFDLElBQUFGLHFCQUFBLElBQUFDLGtCQUFBLEdBQUdqRyxRQUFRLENBQUN1QixPQUFPLGNBQUEwRSxrQkFBQSx1QkFBaEJBLGtCQUFBLENBQWtCckgsS0FBSyxjQUFBb0gscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0lBQ3ZDLElBQU1KLE9BQU8sR0FBR00sQ0FBQyxDQUFDckQsSUFBSSxDQUFDLENBQUMsQ0FBQ2hFLE1BQU0sR0FBRyxDQUFDO0lBQ25DLElBQUkrRyxPQUFPLEtBQUs5RSxlQUFlLENBQUNTLE9BQU8sRUFBRTtNQUN2Q1QsZUFBZSxDQUFDUyxPQUFPLEdBQUdxRSxPQUFPO01BQ2pDbEYsc0JBQXNCLENBQUNrRixPQUFPLENBQUM7SUFDakM7RUFDRixDQUFDO0VBRUQsSUFBTU8sYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJeEcsQ0FBcUMsRUFBSztJQUMvRCxJQUFJQSxDQUFDLENBQUN5RyxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUN6RyxDQUFDLENBQUMwRyxRQUFRLEVBQUU7TUFDcEMxRyxDQUFDLENBQUMyRyxjQUFjLENBQUMsQ0FBQztNQUNsQixJQUFJLENBQUM3RixZQUFZLElBQUksQ0FBQ1IsUUFBUSxFQUFFO1FBQzlCVSxXQUFXLENBQUMsQ0FBQztNQUNmO0lBQ0Y7RUFDRixDQUFDO0VBRUQsb0JBQ0U5QyxJQUFBLENBQUNGLGVBQWU7SUFDZDRJLEdBQUcsRUFBRXZHLFFBQTJDO0lBQ2hEQyxRQUFRLEVBQUVBLFFBQVM7SUFDbkJ1RyxRQUFRLEVBQUViLFlBQWE7SUFDdkJjLFNBQVMsRUFBRU4sYUFBYztJQUN6QmpHLFdBQVcsRUFBRUEsV0FBWTtJQUN6QkMsWUFBWSxFQUFFQSxZQUFhO0lBQzNCdUcscUJBQXFCLEVBQUV0Ryx1QkFBdUIsR0FBRyxZQUFZLEdBQUcsYUFBYztJQUM5RXVHLE1BQU0sRUFBRVo7RUFBVyxDQUNwQixDQUFDO0FBRU4sQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==