@projectcor/maia-components 2.11.68-0 → 2.11.69-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +7 -3
  2. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +4 -2
  3. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  5. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +26 -6
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +40 -202
  7. package/lib/components/atoms/MAIAInput/styles.js +24 -64
  8. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +2 -4
  9. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  10. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  11. package/lib/components/atoms/icons/index.js +3 -1
  12. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +14 -1
  13. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +3 -32
  14. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +2 -2
  15. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +31 -12
  16. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +38 -5
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +31 -4
  18. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +26 -18
  19. package/lib/components/molecules/ChatAIModal/constants.js +6 -2
  20. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +3 -11
  21. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +2 -2
  22. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  23. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  24. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  25. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  26. package/lib/components/molecules/Sidebar/Sidebar.js +16 -4
  27. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +160 -0
  28. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  29. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  30. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +446 -0
  31. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  32. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  33. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +8 -1
  34. package/lib/constants/config.js +4 -1
  35. package/lib/constants/permissions/index.js +2 -2
  36. package/lib/constants/permissions/utils.js +4 -1
  37. package/lib/context/global-context.js +1 -1
  38. package/lib/dev/DevContextMentionInput.js +1 -3
  39. package/lib/hooks/useChatManager/useChatManager.js +7 -20
  40. package/lib/hooks/useChatMessages/useChatMessages.js +4 -2
  41. package/lib/hooks/useContextMentions.js +60 -15
  42. package/lib/hooks/useEntitySearch.js +294 -108
  43. package/lib/hooks/useMentionAllowedTypes.js +45 -10
  44. package/lib/hooks/useMentionPopover.js +54 -48
  45. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -10
  46. package/lib/hooks/useProjectSummaryConfig.js +17 -32
  47. package/lib/lang/br/index.js +54 -11
  48. package/lib/lang/en/index.js +54 -11
  49. package/lib/lang/es/index.js +54 -11
  50. package/lib/lang/fr/index.js +55 -11
  51. package/lib/services/maia/Agents/getAgents.js +10 -8
  52. package/lib/services/maia/Chats/getChatMessages.js +4 -22
  53. package/lib/services/maia/Orchestrator/orchestrator.js +7 -9
  54. package/lib/services/maia/Skills/createSkill.js +39 -0
  55. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  56. package/lib/services/maia/Skills/generateSkill.js +41 -0
  57. package/lib/services/maia/Skills/getSkills.js +90 -0
  58. package/lib/services/maia/Skills/updateSkill.js +39 -0
  59. package/lib/types/Chat.js +1 -1
  60. package/lib/types/contextMention.js +1 -1
  61. package/lib/types/skill.js +2 -0
  62. package/lib/utils/contextMentionIcons.js +29 -1
  63. package/lib/utils/contextMentionTriggers.js +53 -0
  64. package/lib/utils/corConnectorMentionTypes.js +37 -0
  65. package/lib/utils/normalizeAgentConnectors.js +32 -0
  66. package/lib/utils/renderContextMentions.js +9 -4
  67. package/package.json +1 -1
  68. package/lib/components/atoms/MAIAViz/MAIAViz.js +0 -97
  69. package/lib/components/atoms/MAIAViz/MAIAViz.parse.js +0 -131
  70. package/lib/components/atoms/MAIAViz/MAIAViz.skeleton.js +0 -40
  71. package/lib/components/atoms/MAIAViz/MAIAViz.styles.js +0 -8
  72. package/lib/components/atoms/MAIAViz/MAIAViz.types.js +0 -49
  73. package/lib/components/atoms/MAIAViz/MAIAVizBar.js +0 -123
  74. package/lib/components/atoms/MAIAViz/MAIAVizDonut.js +0 -111
  75. package/lib/components/atoms/MAIAViz/MAIAVizKpis.js +0 -34
  76. package/lib/components/atoms/MAIAViz/README.md +0 -85
  77. package/lib/components/atoms/MAIAViz/index.js +0 -2
  78. package/lib/types/Hitl.js +0 -2
  79. package/lib/utils/maiaStreamdownRenderers.js +0 -16
@@ -6,6 +6,7 @@ import { FileProject } from '@projectcor/icons/lib/components/FileProject';
6
6
  import { Globe } from '@projectcor/icons/lib/components/Globe';
7
7
  import { User } from '@projectcor/icons/lib/components/User';
8
8
  import { NotionIcon, NOTION_BRAND_PATH_BLACK, NOTION_BRAND_PATH_WHITE } from '../components/atoms/icons/NotionIcon';
9
+ import { SkillIcon, SKILL_ICON_PATH } from '../components/atoms/icons/SkillIcon';
9
10
  import { TaskLinkIcon } from '../components/atoms/icons/TaskLinkIcon';
10
11
  import { TASK_LINK_ICON_COLOR, TASK_LINK_ICON_PATH } from '../constants/taskLinkIcon';
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -18,6 +19,7 @@ export var isNotionMcpSlug = function isNotionMcpSlug(id) {
18
19
  return String(id !== null && id !== void 0 ? id : '').toLowerCase() === NOTION_MCP_SLUG;
19
20
  };
20
21
  var MENTION_ICON_PATHS = {
22
+ skill: SKILL_ICON_PATH,
21
23
  client: 'M3.375 7C3.1875 7 3 6.84375 3 6.625V5.375C3 5.1875 3.1875 5 3.375 5H4V3.5C4 2.6875 4.6875 2 5.5 2H15.5C16.3438 2 17 2.6875 17 3.5V16.5C17 17.3438 16.3438 18 15.5 18H5.5C4.6875 18 4 17.3438 4 16.5V15H3.375C3.1875 15 3 14.8438 3 14.625V13.375C3 13.1875 3.1875 13 3.375 13H4V11H3.375C3.1875 11 3 10.8438 3 10.625V9.375C3 9.1875 3.1875 9 3.375 9H4V7H3.375ZM5.5 16.5H15.5V3.5H5.5V16.5ZM10.5 10C9.40625 10 8.5 9.125 8.5 8C8.5 6.90625 9.40625 6 10.5 6C11.625 6 12.5 6.90625 12.5 8C12.5 9.125 11.625 10 10.5 10ZM13.3125 14H7.71875C7.3125 14 7 13.75 7 13.4062V12.8125C7 11.8125 7.96875 11 9.125 11C9.4375 11 9.6875 11.25 10.5 11.25C11.3438 11.25 11.5625 11 11.9062 11C13.0625 11 14 11.8125 14 12.8125V13.4062C14 13.75 13.6875 14 13.3125 14Z',
22
24
  project: 'M12.9375 2.4375L15.5312 5.0625C15.8125 5.34375 16 5.75 16 6.125V16.5C16 17.3438 15.3125 18 14.5 18H5.5C4.65625 18 4 17.3438 4 16.5V3.5C4 2.6875 4.65625 2 5.5 2H11.875C12.25 2 12.6562 2.15625 12.9375 2.4375ZM12 6H14.375L12 3.625V6ZM5.5 3.5V16.5H14.5V7.5H11.25C10.8125 7.5 10.5 7.1875 10.5 6.75V3.5H5.5ZM13.25 14.75H9.75C9.59375 14.75 9.5 14.6562 9.5 14.5V13.5C9.5 13.375 9.59375 13.25 9.75 13.25H13.25C13.375 13.25 13.5 13.375 13.5 13.5V14.5C13.5 14.6562 13.375 14.75 13.25 14.75ZM8 15H7C6.71875 15 6.5 14.7812 6.5 14.5V13.5C6.5 13.25 6.71875 13 7 13H8C8.25 13 8.5 13.25 8.5 13.5V14.5C8.5 14.7812 8.25 15 8 15ZM8 11H7C6.71875 11 6.5 10.7812 6.5 10.5V9.5C6.5 9.25 6.71875 9 7 9H8C8.25 9 8.5 9.25 8.5 9.5V10.5C8.5 10.7812 8.25 11 8 11ZM13.25 10.75H9.75C9.59375 10.75 9.5 10.6562 9.5 10.5V9.5C9.5 9.375 9.59375 9.25 9.75 9.25H13.25C13.375 9.25 13.5 9.375 13.5 9.5V10.5C13.5 10.6562 13.375 10.75 13.25 10.75ZM8 7H7C6.71875 7 6.5 6.78125 6.5 6.5V5.5C6.5 5.25 6.71875 5 7 5H8C8.25 5 8.5 5.25 8.5 5.5V6.5C8.5 6.78125 8.25 7 8 7Z',
23
25
  user: 'M12.3839 11.3125C11.6071 11.3125 11.2589 11.75 10 11.75C8.71429 11.75 8.36607 11.3125 7.58929 11.3125C5.60714 11.3125 4 12.9805 4 15.0039V15.6875C4 16.4258 4.5625 17 5.28571 17H14.7143C15.4107 17 16 16.4258 16 15.6875V15.0039C16 12.9805 14.3661 11.3125 12.3839 11.3125ZM14.7143 15.6875H5.28571V15.0039C5.28571 13.6914 6.30357 12.625 7.58929 12.625C7.99107 12.625 8.60714 13.0625 10 13.0625C11.3661 13.0625 11.9821 12.625 12.3839 12.625C13.6696 12.625 14.7143 13.6914 14.7143 15.0039V15.6875ZM10 10.875C12.1161 10.875 13.8571 9.125 13.8571 6.9375C13.8571 4.77734 12.1161 3 10 3C7.85714 3 6.14286 4.77734 6.14286 6.9375C6.14286 9.125 7.85714 10.875 10 10.875ZM10 4.3125C11.3929 4.3125 12.5714 5.51562 12.5714 6.9375C12.5714 8.38672 11.3929 9.5625 10 9.5625C8.58036 9.5625 7.42857 8.38672 7.42857 6.9375C7.42857 5.51562 8.58036 4.3125 10 4.3125Z',
@@ -37,6 +39,23 @@ var createSvgIcon = function createSvgIcon(pathData, color, size) {
37
39
  svg.appendChild(path);
38
40
  return svg;
39
41
  };
42
+ var createSkillIconSvgElement = function createSkillIconSvgElement(color, size) {
43
+ var svg = document.createElementNS(SVG_NS, 'svg');
44
+ svg.setAttribute('viewBox', '0 0 20 20');
45
+ svg.setAttribute('width', String(size));
46
+ svg.setAttribute('height', String(size));
47
+ svg.setAttribute('fill', 'none');
48
+ svg.setAttribute('aria-hidden', 'true');
49
+ svg.style.display = 'block';
50
+ var path = document.createElementNS(SVG_NS, 'path');
51
+ path.setAttribute('d', SKILL_ICON_PATH);
52
+ path.setAttribute('stroke', color);
53
+ path.setAttribute('stroke-linecap', 'round');
54
+ path.setAttribute('stroke-linejoin', 'round');
55
+ path.setAttribute('stroke-width', '1.5');
56
+ svg.appendChild(path);
57
+ return svg;
58
+ };
40
59
  var createNotionIconSvgElement = function createNotionIconSvgElement(size) {
41
60
  var svg = document.createElementNS(SVG_NS, 'svg');
42
61
  svg.setAttribute('viewBox', '0 0 100 100');
@@ -76,6 +95,12 @@ export var getContextMentionIcon = function getContextMentionIcon(type, color, m
76
95
  });
77
96
  case 'user':
78
97
  return /*#__PURE__*/_jsx(User, _objectSpread({}, iconProps));
98
+ case 'skill':
99
+ return /*#__PURE__*/_jsx(SkillIcon, {
100
+ width: resolvedSize,
101
+ height: resolvedSize,
102
+ color: color
103
+ });
79
104
  case 'mcp':
80
105
  if (isNotionMcpSlug(mentionId)) {
81
106
  return /*#__PURE__*/_jsx(NotionIcon, {
@@ -94,6 +119,9 @@ export var createContextMentionIconElement = function createContextMentionIconEl
94
119
  if (type === 'task') {
95
120
  return createSvgIcon(TASK_LINK_ICON_PATH, TASK_LINK_ICON_COLOR, resolvedSize);
96
121
  }
122
+ if (type === 'skill') {
123
+ return createSkillIconSvgElement(color, resolvedSize);
124
+ }
97
125
  if (type === 'mcp' && isNotionMcpSlug(mentionId)) {
98
126
  return createNotionIconSvgElement(resolvedSize);
99
127
  }
@@ -103,4 +131,4 @@ export var createContextMentionIconElement = function createContextMentionIconEl
103
131
  var pathData = (_MENTION_ICON_PATHS$t = MENTION_ICON_PATHS[type]) !== null && _MENTION_ICON_PATHS$t !== void 0 ? _MENTION_ICON_PATHS$t : MENTION_ICON_PATHS.user;
104
132
  return createSvgIcon(pathData, color, resolvedSize);
105
133
  };
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250YWN0IiwiRmlsZVByb2plY3QiLCJHbG9iZSIsIlVzZXIiLCJOb3Rpb25JY29uIiwiTk9USU9OX0JSQU5EX1BBVEhfQkxBQ0siLCJOT1RJT05fQlJBTkRfUEFUSF9XSElURSIsIlRhc2tMaW5rSWNvbiIsIlRBU0tfTElOS19JQ09OX0NPTE9SIiwiVEFTS19MSU5LX0lDT05fUEFUSCIsImpzeCIsIl9qc3giLCJTVkdfTlMiLCJERUZBVUxUX0lDT05fU0laRSIsIk5PVElPTl9NQ1BfU0xVRyIsImlzTm90aW9uTWNwU2x1ZyIsImlkIiwiU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJNRU5USU9OX0lDT05fUEFUSFMiLCJjbGllbnQiLCJwcm9qZWN0IiwidXNlciIsIm1jcCIsImNyZWF0ZVN2Z0ljb24iLCJwYXRoRGF0YSIsImNvbG9yIiwic2l6ZSIsInN2ZyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudE5TIiwic2V0QXR0cmlidXRlIiwic3R5bGUiLCJkaXNwbGF5IiwicGF0aCIsImFwcGVuZENoaWxkIiwiY3JlYXRlTm90aW9uSWNvblN2Z0VsZW1lbnQiLCJwMSIsInAyIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwidHlwZSIsIm1lbnRpb25JZCIsInJlc29sdmVkU2l6ZSIsImljb25Qcm9wcyIsIndpZHRoIiwiY29uY2F0IiwiaGVpZ2h0IiwiX29iamVjdFNwcmVhZCIsImNyZWF0ZUNvbnRleHRNZW50aW9uSWNvbkVsZW1lbnQiLCJfTUVOVElPTl9JQ09OX1BBVEhTJHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29udGV4dE1lbnRpb25JY29ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb250YWN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ29udGFjdCdcbmltcG9ydCB7IEZpbGVQcm9qZWN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvRmlsZVByb2plY3QnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1VzZXInXG5pbXBvcnQgeyBOb3Rpb25JY29uLCBOT1RJT05fQlJBTkRfUEFUSF9CTEFDSywgTk9USU9OX0JSQU5EX1BBVEhfV0hJVEUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2ljb25zL05vdGlvbkljb24nXG5pbXBvcnQgeyBUYXNrTGlua0ljb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9DT0xPUiwgVEFTS19MSU5LX0lDT05fUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cy90YXNrTGlua0ljb24nXG5cbmNvbnN0IFNWR19OUyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZydcbmNvbnN0IERFRkFVTFRfSUNPTl9TSVpFID0gMTRcblxuLyoqIFNsdWcgTUNQIGRlbCBjb25lY3RvciBOb3Rpb24gKGFsaW5lYWRvIGNvbiBOT1RJT05fQ09OTkVDVE9SX1NMVUcgZW4gY2F0YWxvZykuICovXG5leHBvcnQgY29uc3QgTk9USU9OX01DUF9TTFVHID0gJ25vdGlvbidcblxuZXhwb3J0IGNvbnN0IGlzTm90aW9uTWNwU2x1ZyA9IChpZDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PlxuICBTdHJpbmcoaWQgPz8gJycpLnRvTG93ZXJDYXNlKCkgPT09IE5PVElPTl9NQ1BfU0xVR1xuXG5jb25zdCBNRU5USU9OX0lDT05fUEFUSFM6IFJlY29yZDxFeGNsdWRlPENvbnRleHRFbnRpdHlUeXBlLCAndGFzayc+LCBzdHJpbmc+ID0ge1xuICBjbGllbnQ6XG4gICAgJ00zLjM3NSA3QzMuMTg3NSA3IDMgNi44NDM3NSAzIDYuNjI1VjUuMzc1QzMgNS4xODc1IDMuMTg3NSA1IDMuMzc1IDVINFYzLjVDNCAyLjY4NzUgNC42ODc1IDIgNS41IDJIMTUuNUMxNi4zNDM4IDIgMTcgMi42ODc1IDE3IDMuNVYxNi41QzE3IDE3LjM0MzggMTYuMzQzOCAxOCAxNS41IDE4SDUuNUM0LjY4NzUgMTggNCAxNy4zNDM4IDQgMTYuNVYxNUgzLjM3NUMzLjE4NzUgMTUgMyAxNC44NDM4IDMgMTQuNjI1VjEzLjM3NUMzIDEzLjE4NzUgMy4xODc1IDEzIDMuMzc1IDEzSDRWMTFIMy4zNzVDMy4xODc1IDExIDMgMTAuODQzOCAzIDEwLjYyNVY5LjM3NUMzIDkuMTg3NSAzLjE4NzUgOSAzLjM3NSA5SDRWN0gzLjM3NVpNNS41IDE2LjVIMTUuNVYzLjVINS41VjE2LjVaTTEwLjUgMTBDOS40MDYyNSAxMCA4LjUgOS4xMjUgOC41IDhDOC41IDYuOTA2MjUgOS40MDYyNSA2IDEwLjUgNkMxMS42MjUgNiAxMi41IDYuOTA2MjUgMTIuNSA4QzEyLjUgOS4xMjUgMTEuNjI1IDEwIDEwLjUgMTBaTTEzLjMxMjUgMTRINy43MTg3NUM3LjMxMjUgMTQgNyAxMy43NSA3IDEzLjQwNjJWMTIuODEyNUM3IDExLjgxMjUgNy45Njg3NSAxMSA5LjEyNSAxMUM5LjQzNzUgMTEgOS42ODc1IDExLjI1IDEwLjUgMTEuMjVDMTEuMzQzOCAxMS4yNSAxMS41NjI1IDExIDExLjkwNjIgMTFDMTMuMDYyNSAxMSAxNCAxMS44MTI1IDE0IDEyLjgxMjVWMTMuNDA2MkMxNCAxMy43NSAxMy42ODc1IDE0IDEzLjMxMjUgMTRaJyxcbiAgcHJvamVjdDpcbiAgICAnTTEyLjkzNzUgMi40Mzc1TDE1LjUzMTIgNS4wNjI1QzE1LjgxMjUgNS4zNDM3NSAxNiA1Ljc1IDE2IDYuMTI1VjE2LjVDMTYgMTcuMzQzOCAxNS4zMTI1IDE4IDE0LjUgMThINS41QzQuNjU2MjUgMTggNCAxNy4zNDM4IDQgMTYuNVYzLjVDNCAyLjY4NzUgNC42NTYyNSAyIDUuNSAySDExLjg3NUMxMi4yNSAyIDEyLjY1NjIgMi4xNTYyNSAxMi45Mzc1IDIuNDM3NVpNMTIgNkgxNC4zNzVMMTIgMy42MjVWNlpNNS41IDMuNVYxNi41SDE0LjVWNy41SDExLjI1QzEwLjgxMjUgNy41IDEwLjUgNy4xODc1IDEwLjUgNi43NVYzLjVINS41Wk0xMy4yNSAxNC43NUg5Ljc1QzkuNTkzNzUgMTQuNzUgOS41IDE0LjY1NjIgOS41IDE0LjVWMTMuNUM5LjUgMTMuMzc1IDkuNTkzNzUgMTMuMjUgOS43NSAxMy4yNUgxMy4yNUMxMy4zNzUgMTMuMjUgMTMuNSAxMy4zNzUgMTMuNSAxMy41VjE0LjVDMTMuNSAxNC42NTYyIDEzLjM3NSAxNC43NSAxMy4yNSAxNC43NVpNOCAxNUg3QzYuNzE4NzUgMTUgNi41IDE0Ljc4MTIgNi41IDE0LjVWMTMuNUM2LjUgMTMuMjUgNi43MTg3NSAxMyA3IDEzSDhDOC4yNSAxMyA4LjUgMTMuMjUgOC41IDEzLjVWMTQuNUM4LjUgMTQuNzgxMiA4LjI1IDE1IDggMTVaTTggMTFIN0M2LjcxODc1IDExIDYuNSAxMC43ODEyIDYuNSAxMC41VjkuNUM2LjUgOS4yNSA2LjcxODc1IDkgNyA5SDhDOC4yNSA5IDguNSA5LjI1IDguNSA5LjVWMTAuNUM4LjUgMTAuNzgxMiA4LjI1IDExIDggMTFaTTEzLjI1IDEwLjc1SDkuNzVDOS41OTM3NSAxMC43NSA5LjUgMTAuNjU2MiA5LjUgMTAuNVY5LjVDOS41IDkuMzc1IDkuNTkzNzUgOS4yNSA5Ljc1IDkuMjVIMTMuMjVDMTMuMzc1IDkuMjUgMTMuNSA5LjM3NSAxMy41IDkuNVYxMC41QzEzLjUgMTAuNjU2MiAxMy4zNzUgMTAuNzUgMTMuMjUgMTAuNzVaTTggN0g3QzYuNzE4NzUgNyA2LjUgNi43ODEyNSA2LjUgNi41VjUuNUM2LjUgNS4yNSA2LjcxODc1IDUgNyA1SDhDOC4yNSA1IDguNSA1LjI1IDguNSA1LjVWNi41QzguNSA2Ljc4MTI1IDguMjUgNyA4IDdaJyxcbiAgdXNlcjogJ00xMi4zODM5IDExLjMxMjVDMTEuNjA3MSAxMS4zMTI1IDExLjI1ODkgMTEuNzUgMTAgMTEuNzVDOC43MTQyOSAxMS43NSA4LjM2NjA3IDExLjMxMjUgNy41ODkyOSAxMS4zMTI1QzUuNjA3MTQgMTEuMzEyNSA0IDEyLjk4MDUgNCAxNS4wMDM5VjE1LjY4NzVDNCAxNi40MjU4IDQuNTYyNSAxNyA1LjI4NTcxIDE3SDE0LjcxNDNDMTUuNDEwNyAxNyAxNiAxNi40MjU4IDE2IDE1LjY4NzVWMTUuMDAzOUMxNiAxMi45ODA1IDE0LjM2NjEgMTEuMzEyNSAxMi4zODM5IDExLjMxMjVaTTE0LjcxNDMgMTUuNjg3NUg1LjI4NTcxVjE1LjAwMzlDNS4yODU3MSAxMy42OTE0IDYuMzAzNTcgMTIuNjI1IDcuNTg5MjkgMTIuNjI1QzcuOTkxMDcgMTIuNjI1IDguNjA3MTQgMTMuMDYyNSAxMCAxMy4wNjI1QzExLjM2NjEgMTMuMDYyNSAxMS45ODIxIDEyLjYyNSAxMi4zODM5IDEyLjYyNUMxMy42Njk2IDEyLjYyNSAxNC43MTQzIDEzLjY5MTQgMTQuNzE0MyAxNS4wMDM5VjE1LjY4NzVaTTEwIDEwLjg3NUMxMi4xMTYxIDEwLjg3NSAxMy44NTcxIDkuMTI1IDEzLjg1NzEgNi45Mzc1QzEzLjg1NzEgNC43NzczNCAxMi4xMTYxIDMgMTAgM0M3Ljg1NzE0IDMgNi4xNDI4NiA0Ljc3NzM0IDYuMTQyODYgNi45Mzc1QzYuMTQyODYgOS4xMjUgNy44NTcxNCAxMC44NzUgMTAgMTAuODc1Wk0xMCA0LjMxMjVDMTEuMzkyOSA0LjMxMjUgMTIuNTcxNCA1LjUxNTYyIDEyLjU3MTQgNi45Mzc1QzEyLjU3MTQgOC4zODY3MiAxMS4zOTI5IDkuNTYyNSAxMCA5LjU2MjVDOC41ODAzNiA5LjU2MjUgNy40Mjg1NyA4LjM4NjcyIDcuNDI4NTcgNi45Mzc1QzcuNDI4NTcgNS41MTU2MiA4LjU4MDM2IDQuMzEyNSAxMCA0LjMxMjVaJyxcbiAgbWNwOiAnTTEwIDNDNi4xMzMwNiAzIDMgNi4xMzMwNiAzIDEwQzMgMTMuODY2OSA2LjEzMzA2IDE3IDEwIDE3QzEzLjg2NjkgMTcgMTcgMTMuODY2OSAxNyAxMEMxNyA2LjEzMzA2IDEzLjg2NjkgMyAxMCAzWk0xNS4wNTI0IDcuNTE2MTNIMTMuMTYxM0MxMi45NjM3IDYuNSAxMi42NTMyIDUuNTk2NzcgMTIuMjU4MSA0Ljg2MjlDMTMuNDcxOCA1LjM5OTE5IDE0LjQ1OTcgNi4zMzA2NSAxNS4wNTI0IDcuNTE2MTNaTTEwIDQuMzU0ODRDMTAuNTA4MSA0LjM1NDg0IDExLjM1NDggNS41NDAzMiAxMS43NzgyIDcuNTE2MTNIOC4xOTM1NUM4LjYxNjk0IDUuNTQwMzIgOS40NjM3MSA0LjM1NDg0IDEwIDQuMzU0ODRaTTQuMzU0ODQgMTBDNC4zNTQ4NCA5LjYzMzA2IDQuMzgzMDYgOS4yMzc5IDQuNDY3NzQgOC44NzA5N0g2LjY0MTEzQzYuNjEyOSA5LjI2NjEzIDYuNjEyOSA5LjYzMzA2IDYuNjEyOSAxMEM2LjYxMjkgMTAuMzk1MiA2LjYxMjkgMTAuNzYyMSA2LjY0MTEzIDExLjEyOUg0LjQ2Nzc0QzQuMzgzMDYgMTAuNzkwMyA0LjM1NDg0IDEwLjM5NTIgNC4zNTQ4NCAxMFpNNC45MTkzNSAxMi40ODM5SDYuODEwNDhDNy4wMDgwNiAxMy41MjgyIDcuMzE4NTUgMTQuNDMxNSA3LjcxMzcxIDE1LjE2NTNDNi41IDE0LjYyOSA1LjUxMjEgMTMuNjY5NCA0LjkxOTM1IDEyLjQ4MzlaTTYuODEwNDggNy41MTYxM0g0LjkxOTM1QzUuNTEyMSA2LjMzMDY1IDYuNSA1LjM5OTE5IDcuNzEzNzEgNC44NjI5QzcuMzE4NTUgNS41OTY3NyA3LjAwODA2IDYuNSA2LjgxMDQ4IDcuNTE2MTNaTTEwIDE1LjY0NTJDOS40NjM3MSAxNS42NDUyIDguNjE2OTQgMTQuNDg3OSA4LjE5MzU1IDEyLjQ4MzlIMTEuNzc4MkMxMS4zNTQ4IDE0LjQ4NzkgMTAuNTA4MSAxNS42NDUyIDEwIDE1LjY0NTJaTTExLjk3NTggMTEuMTI5SDcuOTk1OTdDNy45Njc3NCAxMC43OTAzIDcuOTY3NzQgMTAuMzk1MiA3Ljk2Nzc0IDEwQzcuOTY3NzQgOS42MDQ4NCA3Ljk2Nzc0IDkuMjM3OSA3Ljk5NTk3IDguODcwOTdIMTEuOTc1OEMxMi4wMDQgOS4yMzc5IDEyLjAzMjMgOS42MDQ4NCAxMi4wMzIzIDEwQzEyLjAzMjMgMTAuMzk1MiAxMi4wMDQgMTAuNzkwMyAxMS45NzU4IDExLjEyOVpNMTIuMjU4MSAxNS4xNjUzQzEyLjY1MzIgMTQuNDMxNSAxMi45NjM3IDEzLjUyODIgMTMuMTYxMyAxMi40ODM5SDE1LjA1MjRDMTQuNDU5NyAxMy42Njk0IDEzLjQ3MTggMTQuNjI5IDEyLjI1ODEgMTUuMTY1M1pNMTMuMzMwNiAxMS4xMjlDMTMuMzU4OSAxMC43NjIxIDEzLjM4NzEgMTAuMzk1MiAxMy4zODcxIDEwQzEzLjM4NzEgOS42MzMwNiAxMy4zNTg5IDkuMjY2MTMgMTMuMzMwNiA4Ljg3MDk3SDE1LjUzMjNDMTUuNTg4NyA5LjIzNzkgMTUuNjQ1MiA5LjYzMzA2IDE1LjY0NTIgMTBDMTUuNjQ1MiAxMC4zOTUyIDE1LjU4ODcgMTAuNzkwMyAxNS41MzIzIDExLjEyOUgxMy4zMzA2WicsXG59XG5cbmNvbnN0IGNyZWF0ZVN2Z0ljb24gPSAocGF0aERhdGE6IHN0cmluZywgY29sb3I6IHN0cmluZywgc2l6ZTogbnVtYmVyKTogU1ZHU1ZHRWxlbWVudCA9PiB7XG4gIGNvbnN0IHN2ZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsICdzdmcnKVxuICBzdmcuc2V0QXR0cmlidXRlKCd2aWV3Qm94JywgJzAgMCAyMCAyMCcpXG4gIHN2Zy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgU3RyaW5nKHNpemUpKVxuICBzdmcuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBTdHJpbmcoc2l6ZSkpXG4gIHN2Zy5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKVxuICBzdmcuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcblxuICBjb25zdCBwYXRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgJ3BhdGgnKVxuICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHBhdGhEYXRhKVxuICBwYXRoLnNldEF0dHJpYnV0ZSgnZmlsbCcsIGNvbG9yKVxuICBwYXRoLnNldEF0dHJpYnV0ZSgnZmlsbC1ydWxlJywgJ25vbnplcm8nKVxuICBzdmcuYXBwZW5kQ2hpbGQocGF0aClcblxuICByZXR1cm4gc3ZnXG59XG5cbmNvbnN0IGNyZWF0ZU5vdGlvbkljb25TdmdFbGVtZW50ID0gKHNpemU6IG51bWJlcik6IFNWR1NWR0VsZW1lbnQgPT4ge1xuICBjb25zdCBzdmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCAnc3ZnJylcbiAgc3ZnLnNldEF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgMTAwIDEwMCcpXG4gIHN2Zy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgU3RyaW5nKHNpemUpKVxuICBzdmcuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBTdHJpbmcoc2l6ZSkpXG4gIHN2Zy5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKVxuICBzdmcuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcblxuICBjb25zdCBwMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsICdwYXRoJylcbiAgcDEuc2V0QXR0cmlidXRlKCdmaWxsJywgJyNmZmYnKVxuICBwMS5zZXRBdHRyaWJ1dGUoJ2QnLCBOT1RJT05fQlJBTkRfUEFUSF9XSElURSlcblxuICBjb25zdCBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsICdwYXRoJylcbiAgcDIuc2V0QXR0cmlidXRlKCdmaWxsJywgJyMwMDAnKVxuICBwMi5zZXRBdHRyaWJ1dGUoJ2ZpbGwtcnVsZScsICdldmVub2RkJylcbiAgcDIuc2V0QXR0cmlidXRlKCdjbGlwLXJ1bGUnLCAnZXZlbm9kZCcpXG4gIHAyLnNldEF0dHJpYnV0ZSgnZCcsIE5PVElPTl9CUkFORF9QQVRIX0JMQUNLKVxuXG4gIHN2Zy5hcHBlbmRDaGlsZChwMSlcbiAgc3ZnLmFwcGVuZENoaWxkKHAyKVxuICByZXR1cm4gc3ZnXG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb250ZXh0TWVudGlvbkljb24gPSAoXG4gIHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLFxuICBjb2xvcjogc3RyaW5nLFxuICBtZW50aW9uSWQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgc2l6ZT86IG51bWJlclxuKTogUmVhY3ROb2RlID0+IHtcbiAgY29uc3QgcmVzb2x2ZWRTaXplID0gc2l6ZSA/PyBERUZBVUxUX0lDT05fU0laRVxuICBjb25zdCBpY29uUHJvcHMgPSB7IGNvbG9yLCB3aWR0aDogYCR7cmVzb2x2ZWRTaXplfXB4YCwgaGVpZ2h0OiBgJHtyZXNvbHZlZFNpemV9cHhgIH1cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiA8Q29udGFjdCB7Li4uaWNvblByb3BzfSAvPlxuICAgIGNhc2UgJ3Byb2plY3QnOlxuICAgICAgcmV0dXJuIDxGaWxlUHJvamVjdCB7Li4uaWNvblByb3BzfSAvPlxuICAgIGNhc2UgJ3Rhc2snOlxuICAgICAgcmV0dXJuIDxUYXNrTGlua0ljb24gd2lkdGg9e3Jlc29sdmVkU2l6ZX0gaGVpZ2h0PXtyZXNvbHZlZFNpemV9IGNvbG9yPXtUQVNLX0xJTktfSUNPTl9DT0xPUn0gLz5cbiAgICBjYXNlICd1c2VyJzpcbiAgICAgIHJldHVybiA8VXNlciB7Li4uaWNvblByb3BzfSAvPlxuICAgIGNhc2UgJ21jcCc6XG4gICAgICBpZiAoaXNOb3Rpb25NY3BTbHVnKG1lbnRpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIDxOb3Rpb25JY29uIHdpZHRoPXtyZXNvbHZlZFNpemV9IGhlaWdodD17cmVzb2x2ZWRTaXplfSAvPlxuICAgICAgfVxuICAgICAgcmV0dXJuIDxHbG9iZSB7Li4uaWNvblByb3BzfSAvPlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPFVzZXIgey4uLmljb25Qcm9wc30gLz5cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dE1lbnRpb25JY29uRWxlbWVudCA9IChcbiAgdHlwZTogQ29udGV4dEVudGl0eVR5cGUsXG4gIGNvbG9yOiBzdHJpbmcsXG4gIG1lbnRpb25JZDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzaXplPzogbnVtYmVyXG4pOiBIVE1MRWxlbWVudCB8IFNWR1NWR0VsZW1lbnQgPT4ge1xuICBjb25zdCByZXNvbHZlZFNpemUgPSBzaXplID8/IERFRkFVTFRfSUNPTl9TSVpFXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gY3JlYXRlU3ZnSWNvbihUQVNLX0xJTktfSUNPTl9QQVRILCBUQVNLX0xJTktfSUNPTl9DT0xPUiwgcmVzb2x2ZWRTaXplKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnICYmIGlzTm90aW9uTWNwU2x1ZyhtZW50aW9uSWQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZU5vdGlvbkljb25TdmdFbGVtZW50KHJlc29sdmVkU2l6ZSlcbiAgfVxuXG4gIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgIHJldHVybiBjcmVhdGVTdmdJY29uKE1FTlRJT05fSUNPTl9QQVRIUy5tY3AsIGNvbG9yLCByZXNvbHZlZFNpemUpXG4gIH1cblxuICBjb25zdCBwYXRoRGF0YSA9IE1FTlRJT05fSUNPTl9QQVRIU1t0eXBlXSA/PyBNRU5USU9OX0lDT05fUEFUSFMudXNlclxuICByZXR1cm4gY3JlYXRlU3ZnSWNvbihwYXRoRGF0YSwgY29sb3IsIHJlc29sdmVkU2l6ZSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBU0EsT0FBTyxRQUFRLDBDQUEwQztBQUNsRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxVQUFVLEVBQUVDLHVCQUF1QixFQUFFQyx1QkFBdUIsUUFBUSxzQ0FBc0M7QUFDbkgsU0FBU0MsWUFBWSxRQUFRLHdDQUF3QztBQUVyRSxTQUFTQyxvQkFBb0IsRUFBRUMsbUJBQW1CLFFBQVEsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXJGLElBQU1DLE1BQU0sR0FBRyw0QkFBNEI7QUFDM0MsSUFBTUMsaUJBQWlCLEdBQUcsRUFBRTs7QUFFNUI7QUFDQSxPQUFPLElBQU1DLGVBQWUsR0FBRyxRQUFRO0FBRXZDLE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxFQUErQjtFQUFBLE9BQzdEQyxNQUFNLENBQUNELEVBQUUsYUFBRkEsRUFBRSxjQUFGQSxFQUFFLEdBQUksRUFBRSxDQUFDLENBQUNFLFdBQVcsQ0FBQyxDQUFDLEtBQUtKLGVBQWU7QUFBQTtBQUVwRCxJQUFNSyxrQkFBc0UsR0FBRztFQUM3RUMsTUFBTSxFQUNKLDZ0QkFBNnRCO0VBQy90QkMsT0FBTyxFQUNMLDgvQkFBOC9CO0VBQ2hnQ0MsSUFBSSxFQUFFLDQwQkFBNDBCO0VBQ2wxQkMsR0FBRyxFQUFFO0FBQ1AsQ0FBQztBQUVELElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsUUFBZ0IsRUFBRUMsS0FBYSxFQUFFQyxJQUFZLEVBQW9CO0VBQ3RGLElBQU1DLEdBQUcsR0FBR0MsUUFBUSxDQUFDQyxlQUFlLENBQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDO0VBQ25EZ0IsR0FBRyxDQUFDRyxZQUFZLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztFQUN4Q0gsR0FBRyxDQUFDRyxZQUFZLENBQUMsT0FBTyxFQUFFZCxNQUFNLENBQUNVLElBQUksQ0FBQyxDQUFDO0VBQ3ZDQyxHQUFHLENBQUNHLFlBQVksQ0FBQyxRQUFRLEVBQUVkLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDLENBQUM7RUFDeENDLEdBQUcsQ0FBQ0csWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7RUFDdkNILEdBQUcsQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLEdBQUcsT0FBTztFQUUzQixJQUFNQyxJQUFJLEdBQUdMLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUNyRHNCLElBQUksQ0FBQ0gsWUFBWSxDQUFDLEdBQUcsRUFBRU4sUUFBUSxDQUFDO0VBQ2hDUyxJQUFJLENBQUNILFlBQVksQ0FBQyxNQUFNLEVBQUVMLEtBQUssQ0FBQztFQUNoQ1EsSUFBSSxDQUFDSCxZQUFZLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztFQUN6Q0gsR0FBRyxDQUFDTyxXQUFXLENBQUNELElBQUksQ0FBQztFQUVyQixPQUFPTixHQUFHO0FBQ1osQ0FBQztBQUVELElBQU1RLDBCQUEwQixHQUFHLFNBQTdCQSwwQkFBMEJBLENBQUlULElBQVksRUFBb0I7RUFDbEUsSUFBTUMsR0FBRyxHQUFHQyxRQUFRLENBQUNDLGVBQWUsQ0FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUM7RUFDbkRnQixHQUFHLENBQUNHLFlBQVksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO0VBQzFDSCxHQUFHLENBQUNHLFlBQVksQ0FBQyxPQUFPLEVBQUVkLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDLENBQUM7RUFDdkNDLEdBQUcsQ0FBQ0csWUFBWSxDQUFDLFFBQVEsRUFBRWQsTUFBTSxDQUFDVSxJQUFJLENBQUMsQ0FBQztFQUN4Q0MsR0FBRyxDQUFDRyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztFQUN2Q0gsR0FBRyxDQUFDSSxLQUFLLENBQUNDLE9BQU8sR0FBRyxPQUFPO0VBRTNCLElBQU1JLEVBQUUsR0FBR1IsUUFBUSxDQUFDQyxlQUFlLENBQUNsQixNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQ25EeUIsRUFBRSxDQUFDTixZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUMvQk0sRUFBRSxDQUFDTixZQUFZLENBQUMsR0FBRyxFQUFFekIsdUJBQXVCLENBQUM7RUFFN0MsSUFBTWdDLEVBQUUsR0FBR1QsUUFBUSxDQUFDQyxlQUFlLENBQUNsQixNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQ25EMEIsRUFBRSxDQUFDUCxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUMvQk8sRUFBRSxDQUFDUCxZQUFZLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztFQUN2Q08sRUFBRSxDQUFDUCxZQUFZLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztFQUN2Q08sRUFBRSxDQUFDUCxZQUFZLENBQUMsR0FBRyxFQUFFMUIsdUJBQXVCLENBQUM7RUFFN0N1QixHQUFHLENBQUNPLFdBQVcsQ0FBQ0UsRUFBRSxDQUFDO0VBQ25CVCxHQUFHLENBQUNPLFdBQVcsQ0FBQ0csRUFBRSxDQUFDO0VBQ25CLE9BQU9WLEdBQUc7QUFDWixDQUFDO0FBRUQsT0FBTyxJQUFNVyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUNoQ0MsSUFBdUIsRUFDdkJkLEtBQWEsRUFDYmUsU0FBc0MsRUFDdENkLElBQWEsRUFDQztFQUNkLElBQU1lLFlBQVksR0FBR2YsSUFBSSxhQUFKQSxJQUFJLGNBQUpBLElBQUksR0FBSWQsaUJBQWlCO0VBQzlDLElBQU04QixTQUFTLEdBQUc7SUFBRWpCLEtBQUssRUFBTEEsS0FBSztJQUFFa0IsS0FBSyxLQUFBQyxNQUFBLENBQUtILFlBQVksT0FBSTtJQUFFSSxNQUFNLEtBQUFELE1BQUEsQ0FBS0gsWUFBWTtFQUFLLENBQUM7RUFDcEYsUUFBUUYsSUFBSTtJQUNWLEtBQUssUUFBUTtNQUNYLG9CQUFPN0IsSUFBQSxDQUFDWCxPQUFPLEVBQUErQyxhQUFBLEtBQUtKLFNBQVMsQ0FBRyxDQUFDO0lBQ25DLEtBQUssU0FBUztNQUNaLG9CQUFPaEMsSUFBQSxDQUFDVixXQUFXLEVBQUE4QyxhQUFBLEtBQUtKLFNBQVMsQ0FBRyxDQUFDO0lBQ3ZDLEtBQUssTUFBTTtNQUNULG9CQUFPaEMsSUFBQSxDQUFDSixZQUFZO1FBQUNxQyxLQUFLLEVBQUVGLFlBQWE7UUFBQ0ksTUFBTSxFQUFFSixZQUFhO1FBQUNoQixLQUFLLEVBQUVsQjtNQUFxQixDQUFFLENBQUM7SUFDakcsS0FBSyxNQUFNO01BQ1Qsb0JBQU9HLElBQUEsQ0FBQ1IsSUFBSSxFQUFBNEMsYUFBQSxLQUFLSixTQUFTLENBQUcsQ0FBQztJQUNoQyxLQUFLLEtBQUs7TUFDUixJQUFJNUIsZUFBZSxDQUFDMEIsU0FBUyxDQUFDLEVBQUU7UUFDOUIsb0JBQU85QixJQUFBLENBQUNQLFVBQVU7VUFBQ3dDLEtBQUssRUFBRUYsWUFBYTtVQUFDSSxNQUFNLEVBQUVKO1FBQWEsQ0FBRSxDQUFDO01BQ2xFO01BQ0Esb0JBQU8vQixJQUFBLENBQUNULEtBQUssRUFBQTZDLGFBQUEsS0FBS0osU0FBUyxDQUFHLENBQUM7SUFDakM7TUFDRSxvQkFBT2hDLElBQUEsQ0FBQ1IsSUFBSSxFQUFBNEMsYUFBQSxLQUFLSixTQUFTLENBQUcsQ0FBQztFQUNsQztBQUNGLENBQUM7QUFFRCxPQUFPLElBQU1LLCtCQUErQixHQUFHLFNBQWxDQSwrQkFBK0JBLENBQzFDUixJQUF1QixFQUN2QmQsS0FBYSxFQUNiZSxTQUFzQyxFQUN0Q2QsSUFBYSxFQUNtQjtFQUFBLElBQUFzQixxQkFBQTtFQUNoQyxJQUFNUCxZQUFZLEdBQUdmLElBQUksYUFBSkEsSUFBSSxjQUFKQSxJQUFJLEdBQUlkLGlCQUFpQjtFQUM5QyxJQUFJMkIsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUNuQixPQUFPaEIsYUFBYSxDQUFDZixtQkFBbUIsRUFBRUQsb0JBQW9CLEVBQUVrQyxZQUFZLENBQUM7RUFDL0U7RUFFQSxJQUFJRixJQUFJLEtBQUssS0FBSyxJQUFJekIsZUFBZSxDQUFDMEIsU0FBUyxDQUFDLEVBQUU7SUFDaEQsT0FBT0wsMEJBQTBCLENBQUNNLFlBQVksQ0FBQztFQUNqRDtFQUVBLElBQUlGLElBQUksS0FBSyxLQUFLLEVBQUU7SUFDbEIsT0FBT2hCLGFBQWEsQ0FBQ0wsa0JBQWtCLENBQUNJLEdBQUcsRUFBRUcsS0FBSyxFQUFFZ0IsWUFBWSxDQUFDO0VBQ25FO0VBRUEsSUFBTWpCLFFBQVEsSUFBQXdCLHFCQUFBLEdBQUc5QixrQkFBa0IsQ0FBQ3FCLElBQUksQ0FBQyxjQUFBUyxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJOUIsa0JBQWtCLENBQUNHLElBQUk7RUFDcEUsT0FBT0UsYUFBYSxDQUFDQyxRQUFRLEVBQUVDLEtBQUssRUFBRWdCLFlBQVksQ0FBQztBQUNyRCxDQUFDIiwiaWdub3JlTGlzdCI6W119
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250YWN0IiwiRmlsZVByb2plY3QiLCJHbG9iZSIsIlVzZXIiLCJOb3Rpb25JY29uIiwiTk9USU9OX0JSQU5EX1BBVEhfQkxBQ0siLCJOT1RJT05fQlJBTkRfUEFUSF9XSElURSIsIlNraWxsSWNvbiIsIlNLSUxMX0lDT05fUEFUSCIsIlRhc2tMaW5rSWNvbiIsIlRBU0tfTElOS19JQ09OX0NPTE9SIiwiVEFTS19MSU5LX0lDT05fUEFUSCIsImpzeCIsIl9qc3giLCJTVkdfTlMiLCJERUZBVUxUX0lDT05fU0laRSIsIk5PVElPTl9NQ1BfU0xVRyIsImlzTm90aW9uTWNwU2x1ZyIsImlkIiwiU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJNRU5USU9OX0lDT05fUEFUSFMiLCJza2lsbCIsImNsaWVudCIsInByb2plY3QiLCJ1c2VyIiwibWNwIiwiY3JlYXRlU3ZnSWNvbiIsInBhdGhEYXRhIiwiY29sb3IiLCJzaXplIiwic3ZnIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50TlMiLCJzZXRBdHRyaWJ1dGUiLCJzdHlsZSIsImRpc3BsYXkiLCJwYXRoIiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVTa2lsbEljb25TdmdFbGVtZW50IiwiY3JlYXRlTm90aW9uSWNvblN2Z0VsZW1lbnQiLCJwMSIsInAyIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwidHlwZSIsIm1lbnRpb25JZCIsInJlc29sdmVkU2l6ZSIsImljb25Qcm9wcyIsIndpZHRoIiwiY29uY2F0IiwiaGVpZ2h0IiwiX29iamVjdFNwcmVhZCIsImNyZWF0ZUNvbnRleHRNZW50aW9uSWNvbkVsZW1lbnQiLCJfTUVOVElPTl9JQ09OX1BBVEhTJHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29udGV4dE1lbnRpb25JY29ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb250YWN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ29udGFjdCdcbmltcG9ydCB7IEZpbGVQcm9qZWN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvRmlsZVByb2plY3QnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1VzZXInXG5pbXBvcnQgeyBOb3Rpb25JY29uLCBOT1RJT05fQlJBTkRfUEFUSF9CTEFDSywgTk9USU9OX0JSQU5EX1BBVEhfV0hJVEUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2ljb25zL05vdGlvbkljb24nXG5pbXBvcnQgeyBTa2lsbEljb24sIFNLSUxMX0lDT05fUEFUSCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMvU2tpbGxJY29uJ1xuaW1wb3J0IHsgVGFza0xpbmtJY29uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9pY29ucy9UYXNrTGlua0ljb24nXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgVEFTS19MSU5LX0lDT05fQ09MT1IsIFRBU0tfTElOS19JQ09OX1BBVEggfSBmcm9tICcuLi9jb25zdGFudHMvdGFza0xpbmtJY29uJ1xuXG5jb25zdCBTVkdfTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnXG5jb25zdCBERUZBVUxUX0lDT05fU0laRSA9IDE0XG5cbi8qKiBTbHVnIE1DUCBkZWwgY29uZWN0b3IgTm90aW9uIChhbGluZWFkbyBjb24gTk9USU9OX0NPTk5FQ1RPUl9TTFVHIGVuIGNhdGFsb2cpLiAqL1xuZXhwb3J0IGNvbnN0IE5PVElPTl9NQ1BfU0xVRyA9ICdub3Rpb24nXG5cbmV4cG9ydCBjb25zdCBpc05vdGlvbk1jcFNsdWcgPSAoaWQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT5cbiAgU3RyaW5nKGlkID8/ICcnKS50b0xvd2VyQ2FzZSgpID09PSBOT1RJT05fTUNQX1NMVUdcblxuY29uc3QgTUVOVElPTl9JQ09OX1BBVEhTOiBSZWNvcmQ8RXhjbHVkZTxDb250ZXh0RW50aXR5VHlwZSwgJ3Rhc2snPiwgc3RyaW5nPiA9IHtcbiAgc2tpbGw6IFNLSUxMX0lDT05fUEFUSCxcbiAgY2xpZW50OlxuICAgICdNMy4zNzUgN0MzLjE4NzUgNyAzIDYuODQzNzUgMyA2LjYyNVY1LjM3NUMzIDUuMTg3NSAzLjE4NzUgNSAzLjM3NSA1SDRWMy41QzQgMi42ODc1IDQuNjg3NSAyIDUuNSAySDE1LjVDMTYuMzQzOCAyIDE3IDIuNjg3NSAxNyAzLjVWMTYuNUMxNyAxNy4zNDM4IDE2LjM0MzggMTggMTUuNSAxOEg1LjVDNC42ODc1IDE4IDQgMTcuMzQzOCA0IDE2LjVWMTVIMy4zNzVDMy4xODc1IDE1IDMgMTQuODQzOCAzIDE0LjYyNVYxMy4zNzVDMyAxMy4xODc1IDMuMTg3NSAxMyAzLjM3NSAxM0g0VjExSDMuMzc1QzMuMTg3NSAxMSAzIDEwLjg0MzggMyAxMC42MjVWOS4zNzVDMyA5LjE4NzUgMy4xODc1IDkgMy4zNzUgOUg0VjdIMy4zNzVaTTUuNSAxNi41SDE1LjVWMy41SDUuNVYxNi41Wk0xMC41IDEwQzkuNDA2MjUgMTAgOC41IDkuMTI1IDguNSA4QzguNSA2LjkwNjI1IDkuNDA2MjUgNiAxMC41IDZDMTEuNjI1IDYgMTIuNSA2LjkwNjI1IDEyLjUgOEMxMi41IDkuMTI1IDExLjYyNSAxMCAxMC41IDEwWk0xMy4zMTI1IDE0SDcuNzE4NzVDNy4zMTI1IDE0IDcgMTMuNzUgNyAxMy40MDYyVjEyLjgxMjVDNyAxMS44MTI1IDcuOTY4NzUgMTEgOS4xMjUgMTFDOS40Mzc1IDExIDkuNjg3NSAxMS4yNSAxMC41IDExLjI1QzExLjM0MzggMTEuMjUgMTEuNTYyNSAxMSAxMS45MDYyIDExQzEzLjA2MjUgMTEgMTQgMTEuODEyNSAxNCAxMi44MTI1VjEzLjQwNjJDMTQgMTMuNzUgMTMuNjg3NSAxNCAxMy4zMTI1IDE0WicsXG4gIHByb2plY3Q6XG4gICAgJ00xMi45Mzc1IDIuNDM3NUwxNS41MzEyIDUuMDYyNUMxNS44MTI1IDUuMzQzNzUgMTYgNS43NSAxNiA2LjEyNVYxNi41QzE2IDE3LjM0MzggMTUuMzEyNSAxOCAxNC41IDE4SDUuNUM0LjY1NjI1IDE4IDQgMTcuMzQzOCA0IDE2LjVWMy41QzQgMi42ODc1IDQuNjU2MjUgMiA1LjUgMkgxMS44NzVDMTIuMjUgMiAxMi42NTYyIDIuMTU2MjUgMTIuOTM3NSAyLjQzNzVaTTEyIDZIMTQuMzc1TDEyIDMuNjI1VjZaTTUuNSAzLjVWMTYuNUgxNC41VjcuNUgxMS4yNUMxMC44MTI1IDcuNSAxMC41IDcuMTg3NSAxMC41IDYuNzVWMy41SDUuNVpNMTMuMjUgMTQuNzVIOS43NUM5LjU5Mzc1IDE0Ljc1IDkuNSAxNC42NTYyIDkuNSAxNC41VjEzLjVDOS41IDEzLjM3NSA5LjU5Mzc1IDEzLjI1IDkuNzUgMTMuMjVIMTMuMjVDMTMuMzc1IDEzLjI1IDEzLjUgMTMuMzc1IDEzLjUgMTMuNVYxNC41QzEzLjUgMTQuNjU2MiAxMy4zNzUgMTQuNzUgMTMuMjUgMTQuNzVaTTggMTVIN0M2LjcxODc1IDE1IDYuNSAxNC43ODEyIDYuNSAxNC41VjEzLjVDNi41IDEzLjI1IDYuNzE4NzUgMTMgNyAxM0g4QzguMjUgMTMgOC41IDEzLjI1IDguNSAxMy41VjE0LjVDOC41IDE0Ljc4MTIgOC4yNSAxNSA4IDE1Wk04IDExSDdDNi43MTg3NSAxMSA2LjUgMTAuNzgxMiA2LjUgMTAuNVY5LjVDNi41IDkuMjUgNi43MTg3NSA5IDcgOUg4QzguMjUgOSA4LjUgOS4yNSA4LjUgOS41VjEwLjVDOC41IDEwLjc4MTIgOC4yNSAxMSA4IDExWk0xMy4yNSAxMC43NUg5Ljc1QzkuNTkzNzUgMTAuNzUgOS41IDEwLjY1NjIgOS41IDEwLjVWOS41QzkuNSA5LjM3NSA5LjU5Mzc1IDkuMjUgOS43NSA5LjI1SDEzLjI1QzEzLjM3NSA5LjI1IDEzLjUgOS4zNzUgMTMuNSA5LjVWMTAuNUMxMy41IDEwLjY1NjIgMTMuMzc1IDEwLjc1IDEzLjI1IDEwLjc1Wk04IDdIN0M2LjcxODc1IDcgNi41IDYuNzgxMjUgNi41IDYuNVY1LjVDNi41IDUuMjUgNi43MTg3NSA1IDcgNUg4QzguMjUgNSA4LjUgNS4yNSA4LjUgNS41VjYuNUM4LjUgNi43ODEyNSA4LjI1IDcgOCA3WicsXG4gIHVzZXI6ICdNMTIuMzgzOSAxMS4zMTI1QzExLjYwNzEgMTEuMzEyNSAxMS4yNTg5IDExLjc1IDEwIDExLjc1QzguNzE0MjkgMTEuNzUgOC4zNjYwNyAxMS4zMTI1IDcuNTg5MjkgMTEuMzEyNUM1LjYwNzE0IDExLjMxMjUgNCAxMi45ODA1IDQgMTUuMDAzOVYxNS42ODc1QzQgMTYuNDI1OCA0LjU2MjUgMTcgNS4yODU3MSAxN0gxNC43MTQzQzE1LjQxMDcgMTcgMTYgMTYuNDI1OCAxNiAxNS42ODc1VjE1LjAwMzlDMTYgMTIuOTgwNSAxNC4zNjYxIDExLjMxMjUgMTIuMzgzOSAxMS4zMTI1Wk0xNC43MTQzIDE1LjY4NzVINS4yODU3MVYxNS4wMDM5QzUuMjg1NzEgMTMuNjkxNCA2LjMwMzU3IDEyLjYyNSA3LjU4OTI5IDEyLjYyNUM3Ljk5MTA3IDEyLjYyNSA4LjYwNzE0IDEzLjA2MjUgMTAgMTMuMDYyNUMxMS4zNjYxIDEzLjA2MjUgMTEuOTgyMSAxMi42MjUgMTIuMzgzOSAxMi42MjVDMTMuNjY5NiAxMi42MjUgMTQuNzE0MyAxMy42OTE0IDE0LjcxNDMgMTUuMDAzOVYxNS42ODc1Wk0xMCAxMC44NzVDMTIuMTE2MSAxMC44NzUgMTMuODU3MSA5LjEyNSAxMy44NTcxIDYuOTM3NUMxMy44NTcxIDQuNzc3MzQgMTIuMTE2MSAzIDEwIDNDNy44NTcxNCAzIDYuMTQyODYgNC43NzczNCA2LjE0Mjg2IDYuOTM3NUM2LjE0Mjg2IDkuMTI1IDcuODU3MTQgMTAuODc1IDEwIDEwLjg3NVpNMTAgNC4zMTI1QzExLjM5MjkgNC4zMTI1IDEyLjU3MTQgNS41MTU2MiAxMi41NzE0IDYuOTM3NUMxMi41NzE0IDguMzg2NzIgMTEuMzkyOSA5LjU2MjUgMTAgOS41NjI1QzguNTgwMzYgOS41NjI1IDcuNDI4NTcgOC4zODY3MiA3LjQyODU3IDYuOTM3NUM3LjQyODU3IDUuNTE1NjIgOC41ODAzNiA0LjMxMjUgMTAgNC4zMTI1WicsXG4gIG1jcDogJ00xMCAzQzYuMTMzMDYgMyAzIDYuMTMzMDYgMyAxMEMzIDEzLjg2NjkgNi4xMzMwNiAxNyAxMCAxN0MxMy44NjY5IDE3IDE3IDEzLjg2NjkgMTcgMTBDMTcgNi4xMzMwNiAxMy44NjY5IDMgMTAgM1pNMTUuMDUyNCA3LjUxNjEzSDEzLjE2MTNDMTIuOTYzNyA2LjUgMTIuNjUzMiA1LjU5Njc3IDEyLjI1ODEgNC44NjI5QzEzLjQ3MTggNS4zOTkxOSAxNC40NTk3IDYuMzMwNjUgMTUuMDUyNCA3LjUxNjEzWk0xMCA0LjM1NDg0QzEwLjUwODEgNC4zNTQ4NCAxMS4zNTQ4IDUuNTQwMzIgMTEuNzc4MiA3LjUxNjEzSDguMTkzNTVDOC42MTY5NCA1LjU0MDMyIDkuNDYzNzEgNC4zNTQ4NCAxMCA0LjM1NDg0Wk00LjM1NDg0IDEwQzQuMzU0ODQgOS42MzMwNiA0LjM4MzA2IDkuMjM3OSA0LjQ2Nzc0IDguODcwOTdINi42NDExM0M2LjYxMjkgOS4yNjYxMyA2LjYxMjkgOS42MzMwNiA2LjYxMjkgMTBDNi42MTI5IDEwLjM5NTIgNi42MTI5IDEwLjc2MjEgNi42NDExMyAxMS4xMjlINC40Njc3NEM0LjM4MzA2IDEwLjc5MDMgNC4zNTQ4NCAxMC4zOTUyIDQuMzU0ODQgMTBaTTQuOTE5MzUgMTIuNDgzOUg2LjgxMDQ4QzcuMDA4MDYgMTMuNTI4MiA3LjMxODU1IDE0LjQzMTUgNy43MTM3MSAxNS4xNjUzQzYuNSAxNC42MjkgNS41MTIxIDEzLjY2OTQgNC45MTkzNSAxMi40ODM5Wk02LjgxMDQ4IDcuNTE2MTNINC45MTkzNUM1LjUxMjEgNi4zMzA2NSA2LjUgNS4zOTkxOSA3LjcxMzcxIDQuODYyOUM3LjMxODU1IDUuNTk2NzcgNy4wMDgwNiA2LjUgNi44MTA0OCA3LjUxNjEzWk0xMCAxNS42NDUyQzkuNDYzNzEgMTUuNjQ1MiA4LjYxNjk0IDE0LjQ4NzkgOC4xOTM1NSAxMi40ODM5SDExLjc3ODJDMTEuMzU0OCAxNC40ODc5IDEwLjUwODEgMTUuNjQ1MiAxMCAxNS42NDUyWk0xMS45NzU4IDExLjEyOUg3Ljk5NTk3QzcuOTY3NzQgMTAuNzkwMyA3Ljk2Nzc0IDEwLjM5NTIgNy45Njc3NCAxMEM3Ljk2Nzc0IDkuNjA0ODQgNy45Njc3NCA5LjIzNzkgNy45OTU5NyA4Ljg3MDk3SDExLjk3NThDMTIuMDA0IDkuMjM3OSAxMi4wMzIzIDkuNjA0ODQgMTIuMDMyMyAxMEMxMi4wMzIzIDEwLjM5NTIgMTIuMDA0IDEwLjc5MDMgMTEuOTc1OCAxMS4xMjlaTTEyLjI1ODEgMTUuMTY1M0MxMi42NTMyIDE0LjQzMTUgMTIuOTYzNyAxMy41MjgyIDEzLjE2MTMgMTIuNDgzOUgxNS4wNTI0QzE0LjQ1OTcgMTMuNjY5NCAxMy40NzE4IDE0LjYyOSAxMi4yNTgxIDE1LjE2NTNaTTEzLjMzMDYgMTEuMTI5QzEzLjM1ODkgMTAuNzYyMSAxMy4zODcxIDEwLjM5NTIgMTMuMzg3MSAxMEMxMy4zODcxIDkuNjMzMDYgMTMuMzU4OSA5LjI2NjEzIDEzLjMzMDYgOC44NzA5N0gxNS41MzIzQzE1LjU4ODcgOS4yMzc5IDE1LjY0NTIgOS42MzMwNiAxNS42NDUyIDEwQzE1LjY0NTIgMTAuMzk1MiAxNS41ODg3IDEwLjc5MDMgMTUuNTMyMyAxMS4xMjlIMTMuMzMwNlonLFxufVxuXG5jb25zdCBjcmVhdGVTdmdJY29uID0gKHBhdGhEYXRhOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcsIHNpemU6IG51bWJlcik6IFNWR1NWR0VsZW1lbnQgPT4ge1xuICBjb25zdCBzdmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCAnc3ZnJylcbiAgc3ZnLnNldEF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgMjAgMjAnKVxuICBzdmcuc2V0QXR0cmlidXRlKCd3aWR0aCcsIFN0cmluZyhzaXplKSlcbiAgc3ZnLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgU3RyaW5nKHNpemUpKVxuICBzdmcuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcbiAgc3ZnLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG5cbiAgY29uc3QgcGF0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsICdwYXRoJylcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2QnLCBwYXRoRGF0YSlcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBjb2xvcilcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwtcnVsZScsICdub256ZXJvJylcbiAgc3ZnLmFwcGVuZENoaWxkKHBhdGgpXG5cbiAgcmV0dXJuIHN2Z1xufVxuXG5jb25zdCBjcmVhdGVTa2lsbEljb25TdmdFbGVtZW50ID0gKGNvbG9yOiBzdHJpbmcsIHNpemU6IG51bWJlcik6IFNWR1NWR0VsZW1lbnQgPT4ge1xuICBjb25zdCBzdmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCAnc3ZnJylcbiAgc3ZnLnNldEF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgMjAgMjAnKVxuICBzdmcuc2V0QXR0cmlidXRlKCd3aWR0aCcsIFN0cmluZyhzaXplKSlcbiAgc3ZnLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgU3RyaW5nKHNpemUpKVxuICBzdmcuc2V0QXR0cmlidXRlKCdmaWxsJywgJ25vbmUnKVxuICBzdmcuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcbiAgc3ZnLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG5cbiAgY29uc3QgcGF0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhTVkdfTlMsICdwYXRoJylcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2QnLCBTS0lMTF9JQ09OX1BBVEgpXG4gIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2UnLCBjb2xvcilcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lY2FwJywgJ3JvdW5kJylcbiAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lam9pbicsICdyb3VuZCcpXG4gIHBhdGguc2V0QXR0cmlidXRlKCdzdHJva2Utd2lkdGgnLCAnMS41JylcbiAgc3ZnLmFwcGVuZENoaWxkKHBhdGgpXG5cbiAgcmV0dXJuIHN2Z1xufVxuXG5jb25zdCBjcmVhdGVOb3Rpb25JY29uU3ZnRWxlbWVudCA9IChzaXplOiBudW1iZXIpOiBTVkdTVkdFbGVtZW50ID0+IHtcbiAgY29uc3Qgc3ZnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgJ3N2ZycpXG4gIHN2Zy5zZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDEwMCAxMDAnKVxuICBzdmcuc2V0QXR0cmlidXRlKCd3aWR0aCcsIFN0cmluZyhzaXplKSlcbiAgc3ZnLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgU3RyaW5nKHNpemUpKVxuICBzdmcuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcbiAgc3ZnLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG5cbiAgY29uc3QgcDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCAncGF0aCcpXG4gIHAxLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjZmZmJylcbiAgcDEuc2V0QXR0cmlidXRlKCdkJywgTk9USU9OX0JSQU5EX1BBVEhfV0hJVEUpXG5cbiAgY29uc3QgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCAncGF0aCcpXG4gIHAyLnNldEF0dHJpYnV0ZSgnZmlsbCcsICcjMDAwJylcbiAgcDIuc2V0QXR0cmlidXRlKCdmaWxsLXJ1bGUnLCAnZXZlbm9kZCcpXG4gIHAyLnNldEF0dHJpYnV0ZSgnY2xpcC1ydWxlJywgJ2V2ZW5vZGQnKVxuICBwMi5zZXRBdHRyaWJ1dGUoJ2QnLCBOT1RJT05fQlJBTkRfUEFUSF9CTEFDSylcblxuICBzdmcuYXBwZW5kQ2hpbGQocDEpXG4gIHN2Zy5hcHBlbmRDaGlsZChwMilcbiAgcmV0dXJuIHN2Z1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dE1lbnRpb25JY29uID0gKFxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSxcbiAgY29sb3I6IHN0cmluZyxcbiAgbWVudGlvbklkOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQsXG4gIHNpemU/OiBudW1iZXJcbik6IFJlYWN0Tm9kZSA9PiB7XG4gIGNvbnN0IHJlc29sdmVkU2l6ZSA9IHNpemUgPz8gREVGQVVMVF9JQ09OX1NJWkVcbiAgY29uc3QgaWNvblByb3BzID0geyBjb2xvciwgd2lkdGg6IGAke3Jlc29sdmVkU2l6ZX1weGAsIGhlaWdodDogYCR7cmVzb2x2ZWRTaXplfXB4YCB9XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2NsaWVudCc6XG4gICAgICByZXR1cm4gPENvbnRhY3Qgey4uLmljb25Qcm9wc30gLz5cbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiA8RmlsZVByb2plY3Qgey4uLmljb25Qcm9wc30gLz5cbiAgICBjYXNlICd0YXNrJzpcbiAgICAgIHJldHVybiA8VGFza0xpbmtJY29uIHdpZHRoPXtyZXNvbHZlZFNpemV9IGhlaWdodD17cmVzb2x2ZWRTaXplfSBjb2xvcj17VEFTS19MSU5LX0lDT05fQ09MT1J9IC8+XG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gPFVzZXIgey4uLmljb25Qcm9wc30gLz5cbiAgICBjYXNlICdza2lsbCc6XG4gICAgICByZXR1cm4gPFNraWxsSWNvbiB3aWR0aD17cmVzb2x2ZWRTaXplfSBoZWlnaHQ9e3Jlc29sdmVkU2l6ZX0gY29sb3I9e2NvbG9yfSAvPlxuICAgIGNhc2UgJ21jcCc6XG4gICAgICBpZiAoaXNOb3Rpb25NY3BTbHVnKG1lbnRpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIDxOb3Rpb25JY29uIHdpZHRoPXtyZXNvbHZlZFNpemV9IGhlaWdodD17cmVzb2x2ZWRTaXplfSAvPlxuICAgICAgfVxuICAgICAgcmV0dXJuIDxHbG9iZSB7Li4uaWNvblByb3BzfSAvPlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPFVzZXIgey4uLmljb25Qcm9wc30gLz5cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dE1lbnRpb25JY29uRWxlbWVudCA9IChcbiAgdHlwZTogQ29udGV4dEVudGl0eVR5cGUsXG4gIGNvbG9yOiBzdHJpbmcsXG4gIG1lbnRpb25JZDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzaXplPzogbnVtYmVyXG4pOiBIVE1MRWxlbWVudCB8IFNWR1NWR0VsZW1lbnQgPT4ge1xuICBjb25zdCByZXNvbHZlZFNpemUgPSBzaXplID8/IERFRkFVTFRfSUNPTl9TSVpFXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gY3JlYXRlU3ZnSWNvbihUQVNLX0xJTktfSUNPTl9QQVRILCBUQVNLX0xJTktfSUNPTl9DT0xPUiwgcmVzb2x2ZWRTaXplKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHtcbiAgICByZXR1cm4gY3JlYXRlU2tpbGxJY29uU3ZnRWxlbWVudChjb2xvciwgcmVzb2x2ZWRTaXplKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnICYmIGlzTm90aW9uTWNwU2x1ZyhtZW50aW9uSWQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZU5vdGlvbkljb25TdmdFbGVtZW50KHJlc29sdmVkU2l6ZSlcbiAgfVxuXG4gIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgIHJldHVybiBjcmVhdGVTdmdJY29uKE1FTlRJT05fSUNPTl9QQVRIUy5tY3AsIGNvbG9yLCByZXNvbHZlZFNpemUpXG4gIH1cblxuICBjb25zdCBwYXRoRGF0YSA9IE1FTlRJT05fSUNPTl9QQVRIU1t0eXBlXSA/PyBNRU5USU9OX0lDT05fUEFUSFMudXNlclxuICByZXR1cm4gY3JlYXRlU3ZnSWNvbihwYXRoRGF0YSwgY29sb3IsIHJlc29sdmVkU2l6ZSlc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
@@ -0,0 +1,53 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /** Secuencia de `@` (positiva) o `@@/`… (negativa = run de @ + slash) por tipo de tab. */
3
+ export var TYPE_TO_TRIGGER_SEQUENCE = {
4
+ user: 1,
5
+ task: 2,
6
+ project: 3,
7
+ client: 4,
8
+ /** Triggers con slash: @@/ para mcp (atRunLength negativo en el editor) */
9
+ mcp: -2
10
+ };
11
+ export var getMentionTabPrefix = function getMentionTabPrefix(type) {
12
+ if (type === 'skill') return '@/';
13
+ var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
14
+ if (mapped === undefined) return '@';
15
+ if (mapped < 0) return "".concat('@'.repeat(Math.abs(mapped)), "/");
16
+ return '@'.repeat(mapped);
17
+ };
18
+ export var getAtRunTabTypes = function getAtRunTabTypes(allowedTypes) {
19
+ return allowedTypes.filter(function (type) {
20
+ if (type === 'skill') return false;
21
+ var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
22
+ return mapped === undefined || mapped > 0;
23
+ });
24
+ };
25
+ export var getTypeFromTriggerSequence = function getTypeFromTriggerSequence(atRunLength, allowedTypes, defaultType) {
26
+ var _Object$entries$find$2, _Object$entries$find2, _allowedTypes$tabIdx;
27
+ if (atRunLength < 0) {
28
+ var _Object$entries$find$, _Object$entries$find;
29
+ var slashType = (_Object$entries$find$ = (_Object$entries$find = Object.entries(TYPE_TO_TRIGGER_SEQUENCE).find(function (_ref) {
30
+ var _ref2 = _slicedToArray(_ref, 2),
31
+ len = _ref2[1];
32
+ return len === atRunLength;
33
+ })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0]) !== null && _Object$entries$find$ !== void 0 ? _Object$entries$find$ : null;
34
+ if (slashType && allowedTypes.includes(slashType)) return slashType;
35
+ return defaultType;
36
+ }
37
+ var normalized = Math.max(1, Math.floor(atRunLength));
38
+ var mappedType = (_Object$entries$find$2 = (_Object$entries$find2 = Object.entries(TYPE_TO_TRIGGER_SEQUENCE).find(function (_ref3) {
39
+ var _ref4 = _slicedToArray(_ref3, 2),
40
+ len = _ref4[1];
41
+ return len === normalized;
42
+ })) === null || _Object$entries$find2 === void 0 ? void 0 : _Object$entries$find2[0]) !== null && _Object$entries$find$2 !== void 0 ? _Object$entries$find$2 : null;
43
+ if (mappedType && allowedTypes.includes(mappedType)) return mappedType;
44
+ var tabIdx = Math.min(Math.max(0, normalized - 1), allowedTypes.length - 1);
45
+ return (_allowedTypes$tabIdx = allowedTypes[tabIdx]) !== null && _allowedTypes$tabIdx !== void 0 ? _allowedTypes$tabIdx : defaultType;
46
+ };
47
+ export var getTriggerSequenceFromType = function getTriggerSequenceFromType(type, allowedTypes) {
48
+ var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
49
+ if (mapped !== undefined) return mapped;
50
+ var idx = allowedTypes.indexOf(type);
51
+ return idx >= 0 ? idx + 1 : 1;
52
+ };
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UiLCJ1c2VyIiwidGFzayIsInByb2plY3QiLCJjbGllbnQiLCJtY3AiLCJnZXRNZW50aW9uVGFiUHJlZml4IiwidHlwZSIsIm1hcHBlZCIsInVuZGVmaW5lZCIsImNvbmNhdCIsInJlcGVhdCIsIk1hdGgiLCJhYnMiLCJnZXRBdFJ1blRhYlR5cGVzIiwiYWxsb3dlZFR5cGVzIiwiZmlsdGVyIiwiZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UiLCJhdFJ1bkxlbmd0aCIsImRlZmF1bHRUeXBlIiwiX09iamVjdCRlbnRyaWVzJGZpbmQkMiIsIl9PYmplY3QkZW50cmllcyRmaW5kMiIsIl9hbGxvd2VkVHlwZXMkdGFiSWR4IiwiX09iamVjdCRlbnRyaWVzJGZpbmQkIiwiX09iamVjdCRlbnRyaWVzJGZpbmQiLCJzbGFzaFR5cGUiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmluZCIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGVuIiwiaW5jbHVkZXMiLCJub3JtYWxpemVkIiwibWF4IiwiZmxvb3IiLCJtYXBwZWRUeXBlIiwiX3JlZjMiLCJfcmVmNCIsInRhYklkeCIsIm1pbiIsImxlbmd0aCIsImdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlIiwiaWR4IiwiaW5kZXhPZiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb250ZXh0TWVudGlvblRyaWdnZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5cbi8qKiBTZWN1ZW5jaWEgZGUgYEBgIChwb3NpdGl2YSkgbyBgQEAvYOKApiAobmVnYXRpdmEgPSBydW4gZGUgQCArIHNsYXNoKSBwb3IgdGlwbyBkZSB0YWIuICovXG5leHBvcnQgY29uc3QgVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFOiBQYXJ0aWFsPFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgbnVtYmVyPj4gPSB7XG4gIHVzZXI6IDEsXG4gIHRhc2s6IDIsXG4gIHByb2plY3Q6IDMsXG4gIGNsaWVudDogNCxcbiAgLyoqIFRyaWdnZXJzIGNvbiBzbGFzaDogQEAvIHBhcmEgbWNwIChhdFJ1bkxlbmd0aCBuZWdhdGl2byBlbiBlbCBlZGl0b3IpICovXG4gIG1jcDogLTIsXG59XG5cbmV4cG9ydCBjb25zdCBnZXRNZW50aW9uVGFiUHJlZml4ID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiAnQC8nXG4gIGNvbnN0IG1hcHBlZCA9IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRVt0eXBlXVxuICBpZiAobWFwcGVkID09PSB1bmRlZmluZWQpIHJldHVybiAnQCdcbiAgaWYgKG1hcHBlZCA8IDApIHJldHVybiBgJHsnQCcucmVwZWF0KE1hdGguYWJzKG1hcHBlZCkpfS9gXG4gIHJldHVybiAnQCcucmVwZWF0KG1hcHBlZClcbn1cblxuZXhwb3J0IGNvbnN0IGdldEF0UnVuVGFiVHlwZXMgPSAoYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogQ29udGV4dEVudGl0eVR5cGVbXSA9PlxuICBhbGxvd2VkVHlwZXMuZmlsdGVyKHR5cGUgPT4ge1xuICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSByZXR1cm4gZmFsc2VcbiAgICBjb25zdCBtYXBwZWQgPSBUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0VbdHlwZV1cbiAgICByZXR1cm4gbWFwcGVkID09PSB1bmRlZmluZWQgfHwgbWFwcGVkID4gMFxuICB9KVxuXG5leHBvcnQgY29uc3QgZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UgPSAoXG4gIGF0UnVuTGVuZ3RoOiBudW1iZXIsXG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXSxcbiAgZGVmYXVsdFR5cGU6IENvbnRleHRFbnRpdHlUeXBlXG4pOiBDb250ZXh0RW50aXR5VHlwZSA9PiB7XG4gIGlmIChhdFJ1bkxlbmd0aCA8IDApIHtcbiAgICBjb25zdCBzbGFzaFR5cGUgPSAoT2JqZWN0LmVudHJpZXMoVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFKS5maW5kKChbLCBsZW5dKSA9PiBsZW4gPT09IGF0UnVuTGVuZ3RoKT8uWzBdID8/XG4gICAgICBudWxsKSBhcyBDb250ZXh0RW50aXR5VHlwZSB8IG51bGxcbiAgICBpZiAoc2xhc2hUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhzbGFzaFR5cGUpKSByZXR1cm4gc2xhc2hUeXBlXG4gICAgcmV0dXJuIGRlZmF1bHRUeXBlXG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoYXRSdW5MZW5ndGgpKVxuICBjb25zdCBtYXBwZWRUeXBlID0gKE9iamVjdC5lbnRyaWVzKFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRSkuZmluZCgoWywgbGVuXSkgPT4gbGVuID09PSBub3JtYWxpemVkKT8uWzBdID8/XG4gICAgbnVsbCkgYXMgQ29udGV4dEVudGl0eVR5cGUgfCBudWxsXG4gIGlmIChtYXBwZWRUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhtYXBwZWRUeXBlKSkgcmV0dXJuIG1hcHBlZFR5cGVcbiAgY29uc3QgdGFiSWR4ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbm9ybWFsaXplZCAtIDEpLCBhbGxvd2VkVHlwZXMubGVuZ3RoIC0gMSlcbiAgcmV0dXJuIGFsbG93ZWRUeXBlc1t0YWJJZHhdID8/IGRlZmF1bHRUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogbnVtYmVyID0+IHtcbiAgY29uc3QgbWFwcGVkID0gVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFW3R5cGVdXG4gIGlmIChtYXBwZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIG1hcHBlZFxuICBjb25zdCBpZHggPSBhbGxvd2VkVHlwZXMuaW5kZXhPZih0eXBlKVxuICByZXR1cm4gaWR4ID49IDAgPyBpZHggKyAxIDogMVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBRUE7QUFDQSxPQUFPLElBQU1BLHdCQUFvRSxHQUFHO0VBQ2xGQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxPQUFPLEVBQUUsQ0FBQztFQUNWQyxNQUFNLEVBQUUsQ0FBQztFQUNUO0VBQ0FDLEdBQUcsRUFBRSxDQUFDO0FBQ1IsQ0FBQztBQUVELE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsSUFBdUIsRUFBYTtFQUN0RSxJQUFJQSxJQUFJLEtBQUssT0FBTyxFQUFFLE9BQU8sSUFBSTtFQUNqQyxJQUFNQyxNQUFNLEdBQUdSLHdCQUF3QixDQUFDTyxJQUFJLENBQUM7RUFDN0MsSUFBSUMsTUFBTSxLQUFLQyxTQUFTLEVBQUUsT0FBTyxHQUFHO0VBQ3BDLElBQUlELE1BQU0sR0FBRyxDQUFDLEVBQUUsVUFBQUUsTUFBQSxDQUFVLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0wsTUFBTSxDQUFDLENBQUM7RUFDdEQsT0FBTyxHQUFHLENBQUNHLE1BQU0sQ0FBQ0gsTUFBTSxDQUFDO0FBQzNCLENBQUM7QUFFRCxPQUFPLElBQU1NLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLFlBQWlDO0VBQUEsT0FDaEVBLFlBQVksQ0FBQ0MsTUFBTSxDQUFDLFVBQUFULElBQUksRUFBSTtJQUMxQixJQUFJQSxJQUFJLEtBQUssT0FBTyxFQUFFLE9BQU8sS0FBSztJQUNsQyxJQUFNQyxNQUFNLEdBQUdSLHdCQUF3QixDQUFDTyxJQUFJLENBQUM7SUFDN0MsT0FBT0MsTUFBTSxLQUFLQyxTQUFTLElBQUlELE1BQU0sR0FBRyxDQUFDO0VBQzNDLENBQUMsQ0FBQztBQUFBO0FBRUosT0FBTyxJQUFNUywwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTBCQSxDQUNyQ0MsV0FBbUIsRUFDbkJILFlBQWlDLEVBQ2pDSSxXQUE4QixFQUNSO0VBQUEsSUFBQUMsc0JBQUEsRUFBQUMscUJBQUEsRUFBQUMsb0JBQUE7RUFDdEIsSUFBSUosV0FBVyxHQUFHLENBQUMsRUFBRTtJQUFBLElBQUFLLHFCQUFBLEVBQUFDLG9CQUFBO0lBQ25CLElBQU1DLFNBQVMsSUFBQUYscUJBQUEsSUFBQUMsb0JBQUEsR0FBSUUsTUFBTSxDQUFDQyxPQUFPLENBQUMzQix3QkFBd0IsQ0FBQyxDQUFDNEIsSUFBSSxDQUFDLFVBQUFDLElBQUE7TUFBQSxJQUFBQyxLQUFBLEdBQUFDLGNBQUEsQ0FBQUYsSUFBQTtRQUFJRyxHQUFHLEdBQUFGLEtBQUE7TUFBQSxPQUFNRSxHQUFHLEtBQUtkLFdBQVc7SUFBQSxFQUFDLGNBQUFNLG9CQUFBLHVCQUEvRUEsb0JBQUEsQ0FBa0YsQ0FBQyxDQUFDLGNBQUFELHFCQUFBLGNBQUFBLHFCQUFBLEdBQ3JHLElBQWlDO0lBQ25DLElBQUlFLFNBQVMsSUFBSVYsWUFBWSxDQUFDa0IsUUFBUSxDQUFDUixTQUFTLENBQUMsRUFBRSxPQUFPQSxTQUFTO0lBQ25FLE9BQU9OLFdBQVc7RUFDcEI7RUFDQSxJQUFNZSxVQUFVLEdBQUd0QixJQUFJLENBQUN1QixHQUFHLENBQUMsQ0FBQyxFQUFFdkIsSUFBSSxDQUFDd0IsS0FBSyxDQUFDbEIsV0FBVyxDQUFDLENBQUM7RUFDdkQsSUFBTW1CLFVBQVUsSUFBQWpCLHNCQUFBLElBQUFDLHFCQUFBLEdBQUlLLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDM0Isd0JBQXdCLENBQUMsQ0FBQzRCLElBQUksQ0FBQyxVQUFBVSxLQUFBO0lBQUEsSUFBQUMsS0FBQSxHQUFBUixjQUFBLENBQUFPLEtBQUE7TUFBSU4sR0FBRyxHQUFBTyxLQUFBO0lBQUEsT0FBTVAsR0FBRyxLQUFLRSxVQUFVO0VBQUEsRUFBQyxjQUFBYixxQkFBQSx1QkFBOUVBLHFCQUFBLENBQWlGLENBQUMsQ0FBQyxjQUFBRCxzQkFBQSxjQUFBQSxzQkFBQSxHQUNyRyxJQUFpQztFQUNuQyxJQUFJaUIsVUFBVSxJQUFJdEIsWUFBWSxDQUFDa0IsUUFBUSxDQUFDSSxVQUFVLENBQUMsRUFBRSxPQUFPQSxVQUFVO0VBQ3RFLElBQU1HLE1BQU0sR0FBRzVCLElBQUksQ0FBQzZCLEdBQUcsQ0FBQzdCLElBQUksQ0FBQ3VCLEdBQUcsQ0FBQyxDQUFDLEVBQUVELFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRW5CLFlBQVksQ0FBQzJCLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFDN0UsUUFBQXBCLG9CQUFBLEdBQU9QLFlBQVksQ0FBQ3lCLE1BQU0sQ0FBQyxjQUFBbEIsb0JBQUEsY0FBQUEsb0JBQUEsR0FBSUgsV0FBVztBQUM1QyxDQUFDO0FBRUQsT0FBTyxJQUFNd0IsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FBSXBDLElBQXVCLEVBQUVRLFlBQWlDLEVBQWE7RUFDaEgsSUFBTVAsTUFBTSxHQUFHUix3QkFBd0IsQ0FBQ08sSUFBSSxDQUFDO0VBQzdDLElBQUlDLE1BQU0sS0FBS0MsU0FBUyxFQUFFLE9BQU9ELE1BQU07RUFDdkMsSUFBTW9DLEdBQUcsR0FBRzdCLFlBQVksQ0FBQzhCLE9BQU8sQ0FBQ3RDLElBQUksQ0FBQztFQUN0QyxPQUFPcUMsR0FBRyxJQUFJLENBQUMsR0FBR0EsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQy9CLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,37 @@
1
+ var COR_MENTION_ORDER = ['user', 'task', 'project', 'client'];
2
+
3
+ /** Slugs COR del API: `task` | `project` | `client` (también acepta variantes legacy `*_read`). */
4
+ export var normalizeCorEntitySlug = function normalizeCorEntitySlug(slug) {
5
+ var normalized = slug.trim().toLowerCase();
6
+ if (normalized === 'task' || normalized === 'tasks' || normalized === 'tasks_read' || normalized === 'task_read') {
7
+ return 'task';
8
+ }
9
+ if (normalized === 'project' || normalized === 'projects' || normalized === 'projects_read' || normalized === 'project_read') {
10
+ return 'project';
11
+ }
12
+ if (normalized === 'client' || normalized === 'clients' || normalized === 'clients_read' || normalized === 'client_read') {
13
+ return 'client';
14
+ }
15
+ return null;
16
+ };
17
+
18
+ /**
19
+ * Deriva tabs de @-mention para agentes custom desde `connectors[].group === 'COR'`.slugs.
20
+ * El array lista entidades habilitadas (`task`, `project`, `client`); `user` se agrega si hay `task`.
21
+ */
22
+ export var getCustomAgentCorMentionTypes = function getCustomAgentCorMentionTypes(corSlugs) {
23
+ var entities = new Set(corSlugs.map(normalizeCorEntitySlug).filter(function (entity) {
24
+ return entity !== null;
25
+ }));
26
+ var enabled = new Set();
27
+ if (entities.has('task')) {
28
+ enabled.add('user');
29
+ enabled.add('task');
30
+ }
31
+ if (entities.has('project')) enabled.add('project');
32
+ if (entities.has('client')) enabled.add('client');
33
+ return COR_MENTION_ORDER.filter(function (type) {
34
+ return enabled.has(type);
35
+ });
36
+ };
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfTUVOVElPTl9PUkRFUiIsIm5vcm1hbGl6ZUNvckVudGl0eVNsdWciLCJzbHVnIiwibm9ybWFsaXplZCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsImdldEN1c3RvbUFnZW50Q29yTWVudGlvblR5cGVzIiwiY29yU2x1Z3MiLCJlbnRpdGllcyIsIlNldCIsIm1hcCIsImZpbHRlciIsImVudGl0eSIsImVuYWJsZWQiLCJoYXMiLCJhZGQiLCJ0eXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvckNvbm5lY3Rvck1lbnRpb25UeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBDT1JfTUVOVElPTl9PUkRFUjogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsndXNlcicsICd0YXNrJywgJ3Byb2plY3QnLCAnY2xpZW50J11cblxuLyoqIFNsdWdzIENPUiBkZWwgQVBJOiBgdGFza2AgfCBgcHJvamVjdGAgfCBgY2xpZW50YCAodGFtYmnDqW4gYWNlcHRhIHZhcmlhbnRlcyBsZWdhY3kgYCpfcmVhZGApLiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUNvckVudGl0eVNsdWcgPSAoc2x1Zzogc3RyaW5nKTogJ3Rhc2snIHwgJ3Byb2plY3QnIHwgJ2NsaWVudCcgfCBudWxsID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHNsdWcudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgaWYgKG5vcm1hbGl6ZWQgPT09ICd0YXNrJyB8fCBub3JtYWxpemVkID09PSAndGFza3MnIHx8IG5vcm1hbGl6ZWQgPT09ICd0YXNrc19yZWFkJyB8fCBub3JtYWxpemVkID09PSAndGFza19yZWFkJykge1xuICAgIHJldHVybiAndGFzaydcbiAgfVxuICBpZiAoXG4gICAgbm9ybWFsaXplZCA9PT0gJ3Byb2plY3QnIHx8XG4gICAgbm9ybWFsaXplZCA9PT0gJ3Byb2plY3RzJyB8fFxuICAgIG5vcm1hbGl6ZWQgPT09ICdwcm9qZWN0c19yZWFkJyB8fFxuICAgIG5vcm1hbGl6ZWQgPT09ICdwcm9qZWN0X3JlYWQnXG4gICkge1xuICAgIHJldHVybiAncHJvamVjdCdcbiAgfVxuICBpZiAoXG4gICAgbm9ybWFsaXplZCA9PT0gJ2NsaWVudCcgfHxcbiAgICBub3JtYWxpemVkID09PSAnY2xpZW50cycgfHxcbiAgICBub3JtYWxpemVkID09PSAnY2xpZW50c19yZWFkJyB8fFxuICAgIG5vcm1hbGl6ZWQgPT09ICdjbGllbnRfcmVhZCdcbiAgKSB7XG4gICAgcmV0dXJuICdjbGllbnQnXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBEZXJpdmEgdGFicyBkZSBALW1lbnRpb24gcGFyYSBhZ2VudGVzIGN1c3RvbSBkZXNkZSBgY29ubmVjdG9yc1tdLmdyb3VwID09PSAnQ09SJ2Auc2x1Z3MuXG4gKiBFbCBhcnJheSBsaXN0YSBlbnRpZGFkZXMgaGFiaWxpdGFkYXMgKGB0YXNrYCwgYHByb2plY3RgLCBgY2xpZW50YCk7IGB1c2VyYCBzZSBhZ3JlZ2Egc2kgaGF5IGB0YXNrYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEN1c3RvbUFnZW50Q29yTWVudGlvblR5cGVzID0gKGNvclNsdWdzOiBzdHJpbmdbXSk6IENvbnRleHRFbnRpdHlUeXBlW10gPT4ge1xuICBjb25zdCBlbnRpdGllcyA9IG5ldyBTZXQoXG4gICAgY29yU2x1Z3MubWFwKG5vcm1hbGl6ZUNvckVudGl0eVNsdWcpLmZpbHRlcigoZW50aXR5KTogZW50aXR5IGlzICd0YXNrJyB8ICdwcm9qZWN0JyB8ICdjbGllbnQnID0+IGVudGl0eSAhPT0gbnVsbClcbiAgKVxuXG4gIGNvbnN0IGVuYWJsZWQgPSBuZXcgU2V0PENvbnRleHRFbnRpdHlUeXBlPigpXG4gIGlmIChlbnRpdGllcy5oYXMoJ3Rhc2snKSkge1xuICAgIGVuYWJsZWQuYWRkKCd1c2VyJylcbiAgICBlbmFibGVkLmFkZCgndGFzaycpXG4gIH1cbiAgaWYgKGVudGl0aWVzLmhhcygncHJvamVjdCcpKSBlbmFibGVkLmFkZCgncHJvamVjdCcpXG4gIGlmIChlbnRpdGllcy5oYXMoJ2NsaWVudCcpKSBlbmFibGVkLmFkZCgnY2xpZW50JylcblxuICByZXR1cm4gQ09SX01FTlRJT05fT1JERVIuZmlsdGVyKHR5cGUgPT4gZW5hYmxlZC5oYXModHlwZSkpXG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLElBQU1BLGlCQUFzQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDOztBQUVwRjtBQUNBLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsSUFBWSxFQUEyQztFQUM1RixJQUFNQyxVQUFVLEdBQUdELElBQUksQ0FBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFDNUMsSUFBSUYsVUFBVSxLQUFLLE1BQU0sSUFBSUEsVUFBVSxLQUFLLE9BQU8sSUFBSUEsVUFBVSxLQUFLLFlBQVksSUFBSUEsVUFBVSxLQUFLLFdBQVcsRUFBRTtJQUNoSCxPQUFPLE1BQU07RUFDZjtFQUNBLElBQ0VBLFVBQVUsS0FBSyxTQUFTLElBQ3hCQSxVQUFVLEtBQUssVUFBVSxJQUN6QkEsVUFBVSxLQUFLLGVBQWUsSUFDOUJBLFVBQVUsS0FBSyxjQUFjLEVBQzdCO0lBQ0EsT0FBTyxTQUFTO0VBQ2xCO0VBQ0EsSUFDRUEsVUFBVSxLQUFLLFFBQVEsSUFDdkJBLFVBQVUsS0FBSyxTQUFTLElBQ3hCQSxVQUFVLEtBQUssY0FBYyxJQUM3QkEsVUFBVSxLQUFLLGFBQWEsRUFDNUI7SUFDQSxPQUFPLFFBQVE7RUFDakI7RUFDQSxPQUFPLElBQUk7QUFDYixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNRyw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQTZCQSxDQUFJQyxRQUFrQixFQUEwQjtFQUN4RixJQUFNQyxRQUFRLEdBQUcsSUFBSUMsR0FBRyxDQUN0QkYsUUFBUSxDQUFDRyxHQUFHLENBQUNULHNCQUFzQixDQUFDLENBQUNVLE1BQU0sQ0FBQyxVQUFDQyxNQUFNO0lBQUEsT0FBOENBLE1BQU0sS0FBSyxJQUFJO0VBQUEsRUFDbEgsQ0FBQztFQUVELElBQU1DLE9BQU8sR0FBRyxJQUFJSixHQUFHLENBQW9CLENBQUM7RUFDNUMsSUFBSUQsUUFBUSxDQUFDTSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7SUFDeEJELE9BQU8sQ0FBQ0UsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNuQkYsT0FBTyxDQUFDRSxHQUFHLENBQUMsTUFBTSxDQUFDO0VBQ3JCO0VBQ0EsSUFBSVAsUUFBUSxDQUFDTSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUVELE9BQU8sQ0FBQ0UsR0FBRyxDQUFDLFNBQVMsQ0FBQztFQUNuRCxJQUFJUCxRQUFRLENBQUNNLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRUQsT0FBTyxDQUFDRSxHQUFHLENBQUMsUUFBUSxDQUFDO0VBRWpELE9BQU9mLGlCQUFpQixDQUFDVyxNQUFNLENBQUMsVUFBQUssSUFBSTtJQUFBLE9BQUlILE9BQU8sQ0FBQ0MsR0FBRyxDQUFDRSxJQUFJLENBQUM7RUFBQSxFQUFDO0FBQzVELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,32 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _typeof from "@babel/runtime/helpers/typeof";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ 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; }
5
+ /** Normaliza el array `connectors` que devuelve la API de agentes o sesiones. */
6
+ export var normalizeAgentConnectors = function normalizeAgentConnectors(raw) {
7
+ if (!Array.isArray(raw)) return undefined;
8
+ var parsed = raw.filter(function (connector) {
9
+ return !!connector && _typeof(connector) === 'object';
10
+ }).map(function (connector) {
11
+ var group = typeof connector.group === 'string' ? connector.group : '';
12
+ var slugs = Array.isArray(connector.slugs) ? connector.slugs.filter(function (slug) {
13
+ return typeof slug === 'string';
14
+ }) : [];
15
+ return {
16
+ group: group,
17
+ slugs: slugs
18
+ };
19
+ }).filter(function (connector) {
20
+ return connector.group.length > 0;
21
+ });
22
+ return parsed.length > 0 ? parsed : undefined;
23
+ };
24
+
25
+ /** Asegura `connectors` normalizados en un agente proveniente del listado de customs. */
26
+ export var withNormalizedConnectors = function withNormalizedConnectors(agent) {
27
+ var connectors = normalizeAgentConnectors(agent.connectors);
28
+ return connectors ? _objectSpread(_objectSpread({}, agent), {}, {
29
+ connectors: connectors
30
+ }) : agent;
31
+ };
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemVBZ2VudENvbm5lY3RvcnMiLCJyYXciLCJBcnJheSIsImlzQXJyYXkiLCJ1bmRlZmluZWQiLCJwYXJzZWQiLCJmaWx0ZXIiLCJjb25uZWN0b3IiLCJfdHlwZW9mIiwibWFwIiwiZ3JvdXAiLCJzbHVncyIsInNsdWciLCJsZW5ndGgiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJhZ2VudCIsImNvbm5lY3RvcnMiLCJfb2JqZWN0U3ByZWFkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFnZW50Q29ubmVjdG9yIH0gZnJvbSAnLi4vdHlwZXMvYWdlbnQnXG5cbi8qKiBOb3JtYWxpemEgZWwgYXJyYXkgYGNvbm5lY3RvcnNgIHF1ZSBkZXZ1ZWx2ZSBsYSBBUEkgZGUgYWdlbnRlcyBvIHNlc2lvbmVzLiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyA9IChyYXc6IHVua25vd24pOiBBZ2VudENvbm5lY3RvcltdIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJhdykpIHJldHVybiB1bmRlZmluZWRcbiAgY29uc3QgcGFyc2VkID0gcmF3XG4gICAgLmZpbHRlcigoY29ubmVjdG9yKTogY29ubmVjdG9yIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICEhY29ubmVjdG9yICYmIHR5cGVvZiBjb25uZWN0b3IgPT09ICdvYmplY3QnKVxuICAgIC5tYXAoY29ubmVjdG9yID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwID0gdHlwZW9mIGNvbm5lY3Rvci5ncm91cCA9PT0gJ3N0cmluZycgPyBjb25uZWN0b3IuZ3JvdXAgOiAnJ1xuICAgICAgY29uc3Qgc2x1Z3MgPSBBcnJheS5pc0FycmF5KGNvbm5lY3Rvci5zbHVncylcbiAgICAgICAgPyBjb25uZWN0b3Iuc2x1Z3MuZmlsdGVyKChzbHVnKTogc2x1ZyBpcyBzdHJpbmcgPT4gdHlwZW9mIHNsdWcgPT09ICdzdHJpbmcnKVxuICAgICAgICA6IFtdXG4gICAgICByZXR1cm4geyBncm91cCwgc2x1Z3MgfVxuICAgIH0pXG4gICAgLmZpbHRlcihjb25uZWN0b3IgPT4gY29ubmVjdG9yLmdyb3VwLmxlbmd0aCA+IDApXG5cbiAgcmV0dXJuIHBhcnNlZC5sZW5ndGggPiAwID8gcGFyc2VkIDogdW5kZWZpbmVkXG59XG5cbi8qKiBBc2VndXJhIGBjb25uZWN0b3JzYCBub3JtYWxpemFkb3MgZW4gdW4gYWdlbnRlIHByb3ZlbmllbnRlIGRlbCBsaXN0YWRvIGRlIGN1c3RvbXMuICovXG5leHBvcnQgY29uc3Qgd2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzID0gPFQgZXh0ZW5kcyB7IGNvbm5lY3RvcnM/OiB1bmtub3duIH0+KGFnZW50OiBUKTogVCA9PiB7XG4gIGNvbnN0IGNvbm5lY3RvcnMgPSBub3JtYWxpemVBZ2VudENvbm5lY3RvcnMoYWdlbnQuY29ubmVjdG9ycylcbiAgcmV0dXJuIGNvbm5lY3RvcnMgPyB7IC4uLmFnZW50LCBjb25uZWN0b3JzIH0gOiBhZ2VudFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUE7QUFDQSxPQUFPLElBQU1BLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlDLEdBQVksRUFBbUM7RUFDdEYsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLEVBQUUsT0FBT0csU0FBUztFQUN6QyxJQUFNQyxNQUFNLEdBQUdKLEdBQUcsQ0FDZkssTUFBTSxDQUFDLFVBQUNDLFNBQVM7SUFBQSxPQUEyQyxDQUFDLENBQUNBLFNBQVMsSUFBSUMsT0FBQSxDQUFPRCxTQUFTLE1BQUssUUFBUTtFQUFBLEVBQUMsQ0FDekdFLEdBQUcsQ0FBQyxVQUFBRixTQUFTLEVBQUk7SUFDaEIsSUFBTUcsS0FBSyxHQUFHLE9BQU9ILFNBQVMsQ0FBQ0csS0FBSyxLQUFLLFFBQVEsR0FBR0gsU0FBUyxDQUFDRyxLQUFLLEdBQUcsRUFBRTtJQUN4RSxJQUFNQyxLQUFLLEdBQUdULEtBQUssQ0FBQ0MsT0FBTyxDQUFDSSxTQUFTLENBQUNJLEtBQUssQ0FBQyxHQUN4Q0osU0FBUyxDQUFDSSxLQUFLLENBQUNMLE1BQU0sQ0FBQyxVQUFDTSxJQUFJO01BQUEsT0FBcUIsT0FBT0EsSUFBSSxLQUFLLFFBQVE7SUFBQSxFQUFDLEdBQzFFLEVBQUU7SUFDTixPQUFPO01BQUVGLEtBQUssRUFBTEEsS0FBSztNQUFFQyxLQUFLLEVBQUxBO0lBQU0sQ0FBQztFQUN6QixDQUFDLENBQUMsQ0FDREwsTUFBTSxDQUFDLFVBQUFDLFNBQVM7SUFBQSxPQUFJQSxTQUFTLENBQUNHLEtBQUssQ0FBQ0csTUFBTSxHQUFHLENBQUM7RUFBQSxFQUFDO0VBRWxELE9BQU9SLE1BQU0sQ0FBQ1EsTUFBTSxHQUFHLENBQUMsR0FBR1IsTUFBTSxHQUFHRCxTQUFTO0FBQy9DLENBQUM7O0FBRUQ7QUFDQSxPQUFPLElBQU1VLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQXdDQyxLQUFRLEVBQVE7RUFDM0YsSUFBTUMsVUFBVSxHQUFHaEIsd0JBQXdCLENBQUNlLEtBQUssQ0FBQ0MsVUFBVSxDQUFDO0VBQzdELE9BQU9BLFVBQVUsR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQVFGLEtBQUs7SUFBRUMsVUFBVSxFQUFWQTtFQUFVLEtBQUtELEtBQUs7QUFDdEQsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -28,11 +28,11 @@ import { openTaskInCorPanel } from './openTaskInCorPanel';
28
28
  * se captura de forma lazy hasta el cierre real `]]`.
29
29
  */
30
30
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
31
- export var MENTION_MARKER_REGEX = /\[\[mention:(client|project|task|user|mcp):([^|\]]+)\|([\s\S]*?)\]\]/g;
31
+ export var MENTION_MARKER_REGEX = /\[\[mention:(client|project|task|user|mcp|skill):([^|\]]+)\|([\s\S]*?)\]\]/g;
32
32
  export var MAIA_MENTION_PROTOCOL = 'maia-mention://';
33
33
  var INCOMPLETE_MENTION_MARKER_REGEX = /\[\[mention:[\s\S]*$/;
34
34
  var INCOMPLETE_SLASH_MARKER_REGEX = /\[\[slash_command:[^|\]]+\|([\s\S]*)$/;
35
- var ALLOWED_TYPES = ['client', 'project', 'task', 'user', 'mcp'];
35
+ var ALLOWED_TYPES = ['client', 'project', 'task', 'user', 'mcp', 'skill'];
36
36
  var parseMentionProtocolHref = function parseMentionProtocolHref(href) {
37
37
  var rest = href.slice(MAIA_MENTION_PROTOCOL.length);
38
38
  var slashIdx = rest.indexOf('/');
@@ -93,8 +93,13 @@ var splitLabelFirstWord = function splitLabelFirstWord(label) {
93
93
  rest: normalized.slice(firstWhitespaceIdx)
94
94
  };
95
95
  };
96
+ var INLINE_MENTION_HOVER_BG = {
97
+ project: VIOLET_IA_COLORS[100]
98
+ };
96
99
  var inlineMentionHoverCss = function inlineMentionHoverCss(type, isClickable) {
97
- var bg = type === 'project' ? VIOLET_IA_COLORS[100] : MENTION_CHIP_NON_TASK_HOVER_BG;
100
+ var _INLINE_MENTION_HOVER;
101
+ if (type === 'skill') return css([""]);
102
+ var bg = (_INLINE_MENTION_HOVER = INLINE_MENTION_HOVER_BG[type]) !== null && _INLINE_MENTION_HOVER !== void 0 ? _INLINE_MENTION_HOVER : MENTION_CHIP_NON_TASK_HOVER_BG;
98
103
  return css(["background:", ";opacity:", ";"], bg, isClickable ? 0.95 : 1);
99
104
  };
100
105
 
@@ -389,4 +394,4 @@ export var renderTextWithMentions = function renderTextWithMentions(text) {
389
394
  if (lastIdx < text.length) out.push(text.slice(lastIdx));
390
395
  return out;
391
396
  };
392
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJTQ0lubGluZU1lbnRpb25SZXN0IiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0TWVudGlvbnMiLCJzbGFzaFJlZ2V4IiwiUmVnRXhwIiwic291cmNlIiwid2l0aG91dFNsYXNoIiwid2l0aG91dEluY29tcGxldGVTbGFzaCIsImdldE1lbnRpb25VcmwiLCJNZW50aW9uQ2hpcCIsIl9yZWY3Iiwibm9ybWFsaXplZExhYmVsIiwidXJsIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQyIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiaGFzSW5saW5lTWFya2VycyIsImNvbGxlY3RJbmxpbmVNYXJrZXJzIiwibWFya2VycyIsImxhc3RJbmRleCIsIm0iLCJleGVjIiwiX20yIiwiX20zIiwiX3NsaWNlZFRvQXJyYXkiLCJwdXNoIiwia2luZCIsImluZGV4IiwicyIsInNvcnQiLCJhIiwiYiIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJvdXQiLCJsYXN0SWR4IiwiZm9yRWFjaCIsIm1hcmtlciIsImlubGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kQ2hpcCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYIH0gZnJvbSAnLi9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFNDVGFza0xpbmsgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi9vcGVuVGFza0luQ29yUGFuZWwnXG5cbi8qKlxuICogRm9ybWF0byBkZWwgbWFyY2Fkb3IgcXVlIHZpYWphIGVuIGVsIHRleHRvIGRlbCBtZW5zYWplOlxuICogICBbW21lbnRpb246PHR5cGU+OjxpZD58PGxhYmVsPl1dXG4gKlxuICogRWwgZWRpdG9yIGxvIGVtaXRlIGN1YW5kbyBzZXJpYWxpemEgZWwgY29udGVudGVkaXRhYmxlLCBlbCBiYWNrZW5kIGxvXG4gKiBwZXJzaXN0ZSB0YWwgY3VhbCB5IGFsIHJlbmRlcml6YXIgc2UgdHJhbnNmb3JtYSBlbiB1biBsaW5rIG1hcmtkb3duIGNvblxuICogdW4gcHJvdG9jb2xvIHByb3BpbyBxdWUgYEN1c3RvbUxpbmtgIGludGVyY2VwdGEgeSBkaWJ1amEgY29tbyBzcGFuXG4gKiBlc3RpbGFkby5cbiAqXG4gKiBQb3Igc2VwYXJhZG8sIGxhIG1ldGFkYXRhIGBjb250ZXh0X21lc3NhZ2VgIGxsZXZhIGxvcyB2YWxvcmVzIGxpbXBpb3NcbiAqIChpZCArIG5hbWUpIHBhcmEgcXVlIGVsIGJhY2tlbmQgcHVlZGEgaW50ZXJwcmV0YXIgbGFzIGVudGlkYWRlcyBzaW5cbiAqIHRlbmVyIHF1ZSBwYXJzZWFyIGVsIHRleHRvLlxuICovXG4vKipcbiAqIExhYmVsIHB1ZWRlIGNvbnRlbmVyIGBdYCAoZWo6IFwiW0VkdWNhdGVdQmxvZyBQb3N0IC4uLlwiKSwgcG9yIGVzb1xuICogc2UgY2FwdHVyYSBkZSBmb3JtYSBsYXp5IGhhc3RhIGVsIGNpZXJyZSByZWFsIGBdXWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOihjbGllbnR8cHJvamVjdHx0YXNrfHVzZXJ8bWNwKTooW158XFxdXSspXFx8KFtcXHNcXFNdKj8pXFxdXFxdL2dcbmV4cG9ydCBjb25zdCBNQUlBX01FTlRJT05fUFJPVE9DT0wgPSAnbWFpYS1tZW50aW9uOi8vJ1xuY29uc3QgSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOltcXHNcXFNdKiQvXG5jb25zdCBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOltefFxcXV0rXFx8KFtcXHNcXFNdKikkL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IGlubGluZU1lbnRpb25Ib3ZlckNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaXNDbGlja2FibGU/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGJnID0gdHlwZSA9PT0gJ3Byb2plY3QnID8gVklPTEVUX0lBX0NPTE9SU1sxMDBdIDogTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvblJlc3QgPSBzdHlsZWQuc3BhbmBcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUYXNrQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlVGFza0tleURvd259XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgcHJvamVjdFVybCA9IGlzUHJvamVjdCA/IGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYCA6IG51bGxcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKGxhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZVByb2plY3RDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIXByb2plY3RVcmwpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbihwcm9qZWN0VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzUHJvamVjdH1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc1Byb2plY3QgPyBoYW5kbGVQcm9qZWN0Q2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc1Byb2plY3QgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc1Byb2plY3QgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBsYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqIFF1aXRhIGxvcyBtYXJrZXJzIGRlbCB0ZXh0bywgZGVqYW5kbyBzb2xvIGBsYWJlbGAuIMOadGlsIHBhcmEgZmFsbGJhY2sgcGxhbm8uICovXG5leHBvcnQgY29uc3Qgc3RyaXBNZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkpKVxuXG4vKipcbiAqIFTDrXR1bG9zIGRlIGNvbnZlcnNhY2nDs24gKHAuIGVqLiBgbGFzdF9xdWVzdGlvbmAgZGVyaXZhZG8gZGVsIHByaW1lciBtZW5zYWplKSBwdWVkZW5cbiAqIGluY2x1aXIgZWwgdGV4dG8gc2VyaWFsaXphZG8gYFtbbWVudGlvbjp0eXBlOmlkfGxhYmVsXV1gLiBQYXJhIHNpZGViYXIgeSBsaXN0YWRvcyxcbiAqIHJlZW1wbGF6YSBjYWRhIGJsb3F1ZSBwb3IgYGxhYmVsYCBlbiB0ZXh0byBwbGFubywgc2luIGVsIG1hcmNhZG9yIGNydWRvLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zID0gKHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQgPT09ICcnKSByZXR1cm4gdGV4dCA/PyAnJ1xuICBjb25zdCB3aXRob3V0TWVudGlvbnMgPSB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+XG4gICAgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpLnRyaW0oKSlcbiAgKVxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgY29uc3Qgd2l0aG91dFNsYXNoID0gd2l0aG91dE1lbnRpb25zLnJlcGxhY2Uoc2xhc2hSZWdleCwgKF9tLCBfaWQsIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YClcbiAgY29uc3Qgd2l0aG91dEluY29tcGxldGVTbGFzaCA9IHdpdGhvdXRTbGFzaC5yZXBsYWNlKFxuICAgIElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYLFxuICAgIChfbSwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gXG4gIClcbiAgcmV0dXJuIHdpdGhvdXRJbmNvbXBsZXRlU2xhc2gucmVwbGFjZShJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYLCAnJykudHJpbSgpXG59XG5cbi8qKiBHZW5lcmEgbGEgVVJMIGRlIG5hdmVnYWNpw7NuIHBhcmEgdW4gbWVudGlvbiBzZWfDum4gc3UgdGlwby4gKi9cbmNvbnN0IGdldE1lbnRpb25VcmwgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiBgL2NsaWVudHMvJHtpZH1gXG4gICAgY2FzZSAncHJvamVjdCc6XG4gICAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgXG4gICAgY2FzZSAndGFzayc6XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS9kZXRhaWxgXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gbnVsbCAvLyBMb3MgdXNlcnMgbm8gc29uIGNsaWNrZWFibGVzXG4gICAgY2FzZSAnbWNwJzpcbiAgICAgIHJldHVybiBudWxsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgTWVudGlvbkNoaXAgPSAoeyB0eXBlLCBpZCwgbGFiZWwgfTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpXG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT1cInRhc2tcIlxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bm9ybWFsaXplZExhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzQ2xpY2thYmxlfVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzQ2xpY2thYmxlID8gaGFuZGxlQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc0NsaWNrYWJsZSA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzQ2xpY2thYmxlID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPFNDSW5saW5lTWVudGlvblJlc3Q+e3Jlc3R9PC9TQ0lubGluZU1lbnRpb25SZXN0PiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbm9ybWFsaXplZExhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgaGFzSW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRleHQuaW5jbHVkZXMoJ1tbbWVudGlvbjonKSB8fCB0ZXh0LmluY2x1ZGVzKCdbW3NsYXNoX2NvbW1hbmQ6Jylcbn1cblxudHlwZSBJbmxpbmVNYXJrZXIgPVxuICB8IHsga2luZDogJ21lbnRpb24nOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHsga2luZDogJ3NsYXNoJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuXG5jb25zdCBjb2xsZWN0SW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBJbmxpbmVNYXJrZXJbXSA9PiB7XG4gIGNvbnN0IG1hcmtlcnM6IElubGluZU1hcmtlcltdID0gW11cblxuICBNRU5USU9OX01BUktFUl9SRUdFWC5sYXN0SW5kZXggPSAwXG4gIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB3aGlsZSAobSkge1xuICAgIGNvbnN0IFssIHJhd1R5cGUsIGlkLCBsYWJlbF0gPSBtXG4gICAgY29uc3QgdHlwZSA9IEFMTE9XRURfVFlQRVMuaW5jbHVkZXMocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgPyAocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgOiAndXNlcidcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnbWVudGlvbicsIGluZGV4OiBtLmluZGV4LCBsZW5ndGg6IG1bMF0ubGVuZ3RoLCB0eXBlLCBpZCwgbGFiZWwgfSlcbiAgICBtID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB9XG5cbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGxldCBzOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIHdoaWxlIChzKSB7XG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ3NsYXNoJywgaW5kZXg6IHMuaW5kZXgsIGxlbmd0aDogc1swXS5sZW5ndGgsIGlkOiBzWzFdLCBsYWJlbDogc1syXSB9KVxuICAgIHMgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJzLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KVxufVxuXG5leHBvcnQgY29uc3QgcmVuZGVyVGV4dFdpdGhNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcpOiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gW3RleHRdXG4gIGNvbnN0IG1hcmtlcnMgPSBjb2xsZWN0SW5saW5lTWFya2Vycyh0ZXh0KVxuICBpZiAobWFya2Vycy5sZW5ndGggPT09IDApIHJldHVybiBbdGV4dF1cblxuICBjb25zdCBvdXQ6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPSBbXVxuICBsZXQgbGFzdElkeCA9IDBcbiAgbWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgaWYgKG1hcmtlci5pbmRleCA+IGxhc3RJZHgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCwgbWFya2VyLmluZGV4KSlcbiAgICBpZiAobWFya2VyLmtpbmQgPT09ICdtZW50aW9uJykge1xuICAgICAgb3V0LnB1c2goXG4gICAgICAgIDxNZW50aW9uQ2hpcFxuICAgICAgICAgIGtleT17YG1lbnRpb24tJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLnR5cGV9LSR7bWFya2VyLmlkfWB9XG4gICAgICAgICAgdHlwZT17bWFya2VyLnR5cGV9XG4gICAgICAgICAgaWQ9e21hcmtlci5pZH1cbiAgICAgICAgICBsYWJlbD17bWFya2VyLmxhYmVsfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQucHVzaCg8U2xhc2hDb21tYW5kQ2hpcCBrZXk9e2BzbGFzaC0ke21hcmtlci5pbmRleH0tJHttYXJrZXIuaWR9YH0gbGFiZWw9e21hcmtlci5sYWJlbH0gaW5saW5lPXtmYWxzZX0gLz4pXG4gICAgfVxuICAgIGxhc3RJZHggPSBtYXJrZXIuaW5kZXggKyBtYXJrZXIubGVuZ3RoXG4gIH0pXG4gIGlmIChsYXN0SWR4IDwgdGV4dC5sZW5ndGgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCkpXG4gIHJldHVybiBvdXRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUE0Q0MsMEJBQTBCLFFBQVEseUJBQXlCO0FBQ3ZHLFNBQ0VDLG1CQUFtQixFQUNuQkMsOEJBQThCLFFBQ3pCLGtFQUFrRTtBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxzQ0FBc0M7QUFDdkUsU0FBU0MsMEJBQTBCLFFBQVEsc0JBQXNCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxVQUFVLFFBQVEsa0RBQWtEO0FBQzdFLFNBQVNDLHFCQUFxQixRQUFRLHVCQUF1QjtBQUM3RCxTQUFTQyw0QkFBNEIsUUFBUSx1QkFBdUI7QUFDcEUsU0FBU0Msa0JBQWtCLFFB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
397
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiSU5MSU5FX01FTlRJT05fSE9WRVJfQkciLCJwcm9qZWN0IiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJfSU5MSU5FX01FTlRJT05fSE9WRVIiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJTQ0lubGluZU1lbnRpb25SZXN0IiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0TWVudGlvbnMiLCJzbGFzaFJlZ2V4IiwiUmVnRXhwIiwic291cmNlIiwid2l0aG91dFNsYXNoIiwid2l0aG91dEluY29tcGxldGVTbGFzaCIsImdldE1lbnRpb25VcmwiLCJNZW50aW9uQ2hpcCIsIl9yZWY3Iiwibm9ybWFsaXplZExhYmVsIiwidXJsIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQyIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiaGFzSW5saW5lTWFya2VycyIsImNvbGxlY3RJbmxpbmVNYXJrZXJzIiwibWFya2VycyIsImxhc3RJbmRleCIsIm0iLCJleGVjIiwiX20yIiwiX20zIiwiX3NsaWNlZFRvQXJyYXkiLCJwdXNoIiwia2luZCIsImluZGV4IiwicyIsInNvcnQiLCJhIiwiYiIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJvdXQiLCJsYXN0SWR4IiwiZm9yRWFjaCIsIm1hcmtlciIsImlubGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kQ2hpcCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYIH0gZnJvbSAnLi9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFNDVGFza0xpbmsgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi9vcGVuVGFza0luQ29yUGFuZWwnXG5cbi8qKlxuICogRm9ybWF0byBkZWwgbWFyY2Fkb3IgcXVlIHZpYWphIGVuIGVsIHRleHRvIGRlbCBtZW5zYWplOlxuICogICBbW21lbnRpb246PHR5cGU+OjxpZD58PGxhYmVsPl1dXG4gKlxuICogRWwgZWRpdG9yIGxvIGVtaXRlIGN1YW5kbyBzZXJpYWxpemEgZWwgY29udGVudGVkaXRhYmxlLCBlbCBiYWNrZW5kIGxvXG4gKiBwZXJzaXN0ZSB0YWwgY3VhbCB5IGFsIHJlbmRlcml6YXIgc2UgdHJhbnNmb3JtYSBlbiB1biBsaW5rIG1hcmtkb3duIGNvblxuICogdW4gcHJvdG9jb2xvIHByb3BpbyBxdWUgYEN1c3RvbUxpbmtgIGludGVyY2VwdGEgeSBkaWJ1amEgY29tbyBzcGFuXG4gKiBlc3RpbGFkby5cbiAqXG4gKiBQb3Igc2VwYXJhZG8sIGxhIG1ldGFkYXRhIGBjb250ZXh0X21lc3NhZ2VgIGxsZXZhIGxvcyB2YWxvcmVzIGxpbXBpb3NcbiAqIChpZCArIG5hbWUpIHBhcmEgcXVlIGVsIGJhY2tlbmQgcHVlZGEgaW50ZXJwcmV0YXIgbGFzIGVudGlkYWRlcyBzaW5cbiAqIHRlbmVyIHF1ZSBwYXJzZWFyIGVsIHRleHRvLlxuICovXG4vKipcbiAqIExhYmVsIHB1ZWRlIGNvbnRlbmVyIGBdYCAoZWo6IFwiW0VkdWNhdGVdQmxvZyBQb3N0IC4uLlwiKSwgcG9yIGVzb1xuICogc2UgY2FwdHVyYSBkZSBmb3JtYSBsYXp5IGhhc3RhIGVsIGNpZXJyZSByZWFsIGBdXWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOihjbGllbnR8cHJvamVjdHx0YXNrfHVzZXJ8bWNwfHNraWxsKTooW158XFxdXSspXFx8KFtcXHNcXFNdKj8pXFxdXFxdL2dcbmV4cG9ydCBjb25zdCBNQUlBX01FTlRJT05fUFJPVE9DT0wgPSAnbWFpYS1tZW50aW9uOi8vJ1xuY29uc3QgSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOltcXHNcXFNdKiQvXG5jb25zdCBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOltefFxcXV0rXFx8KFtcXHNcXFNdKikkL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJywgJ3NraWxsJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IElOTElORV9NRU5USU9OX0hPVkVSX0JHOiBQYXJ0aWFsPFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPj4gPSB7XG4gIHByb2plY3Q6IFZJT0xFVF9JQV9DT0xPUlNbMTAwXSxcbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiBjc3NgYFxuICBjb25zdCBiZyA9IElOTElORV9NRU5USU9OX0hPVkVSX0JHW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CR1xuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Ymd9O1xuICAgIG9wYWNpdHk6ICR7aXNDbGlja2FibGUgPyAwLjk1IDogMX07XG4gIGBcbn1cblxuLyoqIFNwYW4gaW5saW5lIGVzdGlsYWRvIChtZW5jaW9uZXMgbm8tdGFzayBlbiBjaGF0KS4gKi9cbmNvbnN0IFNDSW5saW5lTWVudGlvbiA9IHN0eWxlZC5zcGFuPHsgJHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyAkaXNDbGlja2FibGU/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuYmd9O1xuICBjb2xvcjogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5mZ307XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGN1cnNvcjogJHsoeyAkaXNDbGlja2FibGUgfSkgPT4gKCRpc0NsaWNrYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0Jyl9O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkdHlwZSwgJGlzQ2xpY2thYmxlIH0pID0+IGlubGluZU1lbnRpb25Ib3ZlckNzcygkdHlwZSwgJGlzQ2xpY2thYmxlKX1cbiAgfVxuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uID0gc3R5bGVkLnNwYW48eyAkdGFzaz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIHdpZHRoOiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBoZWlnaHQ6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb25Sb3cgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uV29yZCA9IHN0eWxlZC5zcGFuYFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25SZXN0ID0gc3R5bGVkLnNwYW5gXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlVGFza0NsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZVRhc2tLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHByb2plY3RVcmwgPSBpc1Byb2plY3QgPyBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGAgOiBudWxsXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChsYWJlbClcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0Q2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFwcm9qZWN0VXJsKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4ocHJvamVjdFVybCwgJ19ibGFuaycpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc1Byb2plY3R9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNQcm9qZWN0ID8gaGFuZGxlUHJvamVjdENsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNQcm9qZWN0ID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNQcm9qZWN0ID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPFNDSW5saW5lTWVudGlvblJlc3Q+e3Jlc3R9PC9TQ0lubGluZU1lbnRpb25SZXN0PiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbi8qKiBRdWl0YSBsb3MgbWFya2VycyBkZWwgdGV4dG8sIGRlamFuZG8gc29sbyBgbGFiZWxgLiDDmnRpbCBwYXJhIGZhbGxiYWNrIHBsYW5vLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpKSlcblxuLyoqXG4gKiBUw610dWxvcyBkZSBjb252ZXJzYWNpw7NuIChwLiBlai4gYGxhc3RfcXVlc3Rpb25gIGRlcml2YWRvIGRlbCBwcmltZXIgbWVuc2FqZSkgcHVlZGVuXG4gKiBpbmNsdWlyIGVsIHRleHRvIHNlcmlhbGl6YWRvIGBbW21lbnRpb246dHlwZTppZHxsYWJlbF1dYC4gUGFyYSBzaWRlYmFyIHkgbGlzdGFkb3MsXG4gKiByZWVtcGxhemEgY2FkYSBibG9xdWUgcG9yIGBsYWJlbGAgZW4gdGV4dG8gcGxhbm8sIHNpbiBlbCBtYXJjYWRvciBjcnVkby5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgaWYgKHRleHQgPT0gbnVsbCB8fCB0ZXh0ID09PSAnJykgcmV0dXJuIHRleHQgPz8gJydcbiAgY29uc3Qgd2l0aG91dE1lbnRpb25zID0gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PlxuICAgIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKS50cmltKCkpXG4gIClcbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGNvbnN0IHdpdGhvdXRTbGFzaCA9IHdpdGhvdXRNZW50aW9ucy5yZXBsYWNlKHNsYXNoUmVnZXgsIChfbSwgX2lkLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWApXG4gIGNvbnN0IHdpdGhvdXRJbmNvbXBsZXRlU2xhc2ggPSB3aXRob3V0U2xhc2gucmVwbGFjZShcbiAgICBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCxcbiAgICAoX20sIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YFxuICApXG4gIHJldHVybiB3aXRob3V0SW5jb21wbGV0ZVNsYXNoLnJlcGxhY2UoSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCwgJycpLnRyaW0oKVxufVxuXG4vKiogR2VuZXJhIGxhIFVSTCBkZSBuYXZlZ2FjacOzbiBwYXJhIHVuIG1lbnRpb24gc2Vnw7puIHN1IHRpcG8uICovXG5jb25zdCBnZXRNZW50aW9uVXJsID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpZDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2NsaWVudCc6XG4gICAgICByZXR1cm4gYC9jbGllbnRzLyR7aWR9YFxuICAgIGNhc2UgJ3Byb2plY3QnOlxuICAgICAgcmV0dXJuIGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYFxuICAgIGNhc2UgJ3Rhc2snOlxuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIG51bGwgLy8gTG9zIHVzZXJzIG5vIHNvbiBjbGlja2VhYmxlc1xuICAgIGNhc2UgJ21jcCc6XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmNvbnN0IE1lbnRpb25DaGlwID0gKHsgdHlwZSwgaWQsIGxhYmVsIH06IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKVxuICBjb25zdCB1cmwgPSBnZXRNZW50aW9uVXJsKHR5cGUsIGlkKVxuICBjb25zdCBpc0NsaWNrYWJsZSA9ICEhdXJsXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChub3JtYWxpemVkTGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8ICF1cmwpIHJldHVyblxuICAgIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgdHlwZSAhPT0gJ3Rhc2snKSByZXR1cm5cbiAgICBpZiAoZS5rZXkgIT09ICdFbnRlcicgJiYgZS5rZXkgIT09ICcgJykgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDVGFza0xpbmtcbiAgICAgICAgaHJlZj17dXJsID8/ICcjJ31cbiAgICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxTQ0lubGluZU1lbnRpb25SZXN0PntyZXN0fTwvU0NJbmxpbmVNZW50aW9uUmVzdD4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGhhc0lubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKCdbW21lbnRpb246JykgfHwgdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbnR5cGUgSW5saW5lTWFya2VyID1cbiAgfCB7IGtpbmQ6ICdtZW50aW9uJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdzbGFzaCc7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cblxuY29uc3QgY29sbGVjdElubGluZU1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogSW5saW5lTWFya2VyW10gPT4ge1xuICBjb25zdCBtYXJrZXJzOiBJbmxpbmVNYXJrZXJbXSA9IFtdXG5cbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgd2hpbGUgKG0pIHtcbiAgICBjb25zdCBbLCByYXdUeXBlLCBpZCwgbGFiZWxdID0gbVxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ21lbnRpb24nLCBpbmRleDogbS5pbmRleCwgbGVuZ3RoOiBtWzBdLmxlbmd0aCwgdHlwZSwgaWQsIGxhYmVsIH0pXG4gICAgbSA9IE1FTlRJT05fTUFSS0VSX1JFR0VYLmV4ZWModGV4dClcbiAgfVxuXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBsZXQgczogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB3aGlsZSAocykge1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdzbGFzaCcsIGluZGV4OiBzLmluZGV4LCBsZW5ndGg6IHNbMF0ubGVuZ3RoLCBpZDogc1sxXSwgbGFiZWw6IHNbMl0gfSlcbiAgICBzID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIH1cblxuICByZXR1cm4gbWFya2Vycy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleClcbn1cblxuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBtYXJrZXJzID0gY29sbGVjdElubGluZU1hcmtlcnModGV4dClcbiAgaWYgKG1hcmtlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gW3RleHRdXG5cbiAgY29uc3Qgb3V0OiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0gW11cbiAgbGV0IGxhc3RJZHggPSAwXG4gIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgIGlmIChtYXJrZXIuaW5kZXggPiBsYXN0SWR4KSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgsIG1hcmtlci5pbmRleCkpXG4gICAgaWYgKG1hcmtlci5raW5kID09PSAnbWVudGlvbicpIHtcbiAgICAgIG91dC5wdXNoKFxuICAgICAgICA8TWVudGlvbkNoaXBcbiAgICAgICAgICBrZXk9e2BtZW50aW9uLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci50eXBlfS0ke21hcmtlci5pZH1gfVxuICAgICAgICAgIHR5cGU9e21hcmtlci50eXBlfVxuICAgICAgICAgIGlkPXttYXJrZXIuaWR9XG4gICAgICAgICAgbGFiZWw9e21hcmtlci5sYWJlbH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0LnB1c2goPFNsYXNoQ29tbWFuZENoaXAga2V5PXtgc2xhc2gtJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLmlkfWB9IGxhYmVsPXttYXJrZXIubGFiZWx9IGlubGluZT17ZmFsc2V9IC8+KVxuICAgIH1cbiAgICBsYXN0SWR4ID0gbWFya2VyLmluZGV4ICsgbWFya2VyLmxlbmd0aFxuICB9KVxuICBpZiAobGFzdElkeCA8IHRleHQubGVuZ3RoKSBvdXQucHVzaCh0ZXh0LnNsaWNlKGxhc3RJZHgpKVxuICByZXR1cm4gb3V0XG59XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBNENDLDBCQUEwQixRQUFRLHlCQUF5QjtBQUN2RyxTQUNFQyxtQkFBbUIsRUFDbkJDLDhCQUE4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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.68-0",
3
+ "version": "2.11.69-0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {