@projectcor/maia-components 2.38.1 → 2.38.2

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 (166) hide show
  1. package/CHANGELOG.md +784 -0
  2. package/lib/components/atoms/ActionableButton.js +1 -6
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
  4. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  5. package/lib/components/atoms/Chip/Chip.spec.js +32 -0
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  7. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  8. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -14
  9. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +3 -12
  10. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
  11. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
  12. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  13. package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -29
  14. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +300 -0
  15. package/lib/components/atoms/MAIAInput/styles.js +29 -36
  16. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +3 -3
  17. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
  18. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +2 -2
  19. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  20. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  21. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  22. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
  23. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
  24. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
  25. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
  26. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
  27. package/lib/components/molecules/ChatAIHome/styles.js +2 -11
  28. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
  29. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  30. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +2 -7
  31. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
  32. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  33. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
  35. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
  36. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -18
  37. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  38. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -13
  39. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
  40. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  41. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
  42. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  43. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +10 -34
  44. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  45. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +6 -14
  46. package/lib/components/molecules/ChatFooter/ChatFooter.js +45 -66
  47. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +105 -0
  48. package/lib/components/molecules/ChatFooter/styles.js +6 -12
  49. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  50. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +5 -15
  51. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  52. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  53. package/lib/components/molecules/Sidebar/Sidebar.spec.js +208 -0
  54. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +11 -30
  55. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
  56. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +18 -31
  57. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +19 -40
  58. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +315 -0
  59. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +2 -2
  60. package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
  61. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  62. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  63. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  64. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  65. package/lib/constants/permissions/utils.spec.js +34 -0
  66. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
  67. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
  68. package/lib/hooks/useCaretPosition.spec.js +58 -0
  69. package/lib/hooks/useChatManager/useChatManager.js +34 -55
  70. package/lib/hooks/useDebounce.spec.js +42 -0
  71. package/lib/hooks/useEvent.spec.js +40 -0
  72. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  73. package/lib/hooks/useModal/useModal.spec.js +73 -0
  74. package/lib/hooks/useResize.spec.js +37 -0
  75. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  76. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  77. package/lib/hooks/useT.spec.js +20 -0
  78. package/lib/hooks/useToggle.spec.js +33 -0
  79. package/lib/lang/br/index.js +2 -6
  80. package/lib/lang/en/index.js +2 -6
  81. package/lib/lang/es/index.js +2 -6
  82. package/lib/lang/fr/index.js +3 -7
  83. package/lib/lib/utils.js +9 -0
  84. package/lib/services/maia/Access/updateAccess.spec.js +108 -0
  85. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
  86. package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
  87. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  88. package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
  89. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  90. package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
  91. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
  92. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  93. package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
  94. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  95. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  96. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  97. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  98. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  99. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  100. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  101. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  102. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  103. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  104. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  105. package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
  106. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  107. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
  108. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  109. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  110. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  111. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  112. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  113. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  114. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  115. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  116. package/lib/services/maia/client.spec.js +56 -0
  117. package/lib/services/maia/index.js +2 -4
  118. package/lib/services/utils/fetchCOR.js +57 -106
  119. package/lib/services/utils/fetchCOR.spec.js +211 -0
  120. package/lib/services/utils/getCookie.spec.js +20 -0
  121. package/lib/services/utils/index.js +1 -2
  122. package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
  123. package/lib/store/index.js +1 -2
  124. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  125. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  126. package/lib/store/sessions/sessionStreamManager.js +35 -70
  127. package/lib/store/sessions/sessions.types.js +1 -1
  128. package/lib/store/sessions/sessions.types.spec.js +16 -0
  129. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  130. package/lib/store/useChatsStore.spec.js +619 -0
  131. package/lib/store/useFaqsStore.spec.js +57 -0
  132. package/lib/utils/agentDisplayName.spec.js +44 -0
  133. package/lib/utils/autoApproveStorage.spec.js +25 -0
  134. package/lib/utils/chatInputFiles.spec.js +39 -0
  135. package/lib/utils/contextMentionLabel.spec.js +13 -0
  136. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  137. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  138. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  139. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  140. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  141. package/lib/utils/formatUnreadCount.spec.js +12 -0
  142. package/lib/utils/getUnitFileSize.spec.js +18 -0
  143. package/lib/utils/hitlAnalytics.spec.js +100 -0
  144. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  145. package/lib/utils/mapBackendLang.spec.js +19 -0
  146. package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
  147. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  148. package/lib/utils/reasoningMappers.spec.js +103 -0
  149. package/lib/utils/retryCompletion.spec.js +99 -0
  150. package/lib/utils/skillContentSize.spec.js +13 -0
  151. package/lib/utils/slashCommandMarker.spec.js +43 -0
  152. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  153. package/lib/utils/sseStreamContent.spec.js +31 -0
  154. package/lib/utils/streamActivityMessages.spec.js +98 -0
  155. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  156. package/package.json +1 -1
  157. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -30
  158. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
  159. package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
  160. package/lib/lang/__mocks__/index.js +0 -9
  161. package/lib/services/maia/Usage/getUsage.js +0 -45
  162. package/lib/services/maia/Usage/index.js +0 -6
  163. package/lib/services/utils/MaiaApiError.js +0 -34
  164. package/lib/store/useUsageStore.js +0 -115
  165. package/lib/types/usage.js +0 -16
  166. package/lib/utils/usageBlockedMessage.js +0 -11
@@ -0,0 +1,300 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
3
+ import { GlobalContextTestProvider } from '../../../test/global-context';
4
+ import { MAIAInput } from './MAIAInput';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ var insertSkillMention = jest.fn();
7
+ jest.mock('../../../hooks/useEvent', function () {
8
+ return {
9
+ EVENTS: {
10
+ aiChatPlusOpen: 'AI_CHAT_PLUS_OPEN',
11
+ aiChatQuickActionOpen: 'AI_CHAT_QUICK_ACTION_OPEN',
12
+ aiChatSkillOpen: 'AI_CHAT_SKILL_OPEN',
13
+ aiChatSkillSelect: 'AI_CHAT_SKILL_SELECT',
14
+ aiChatSkillRemove: 'AI_CHAT_SKILL_REMOVE'
15
+ },
16
+ useEvent: function useEvent() {
17
+ return jest.fn();
18
+ }
19
+ };
20
+ });
21
+ jest.mock('../../../context/cor-user', function () {
22
+ return {
23
+ CORUserRole: {
24
+ CLEVEL: 1,
25
+ DIRECTOR: 2,
26
+ PROJECT_MANAGER: 3,
27
+ COLLABORATOR: 4,
28
+ FREELANCER: 5,
29
+ CLIENT: 6
30
+ },
31
+ useUser: function useUser() {
32
+ return {
33
+ id: 99,
34
+ role_id: 3
35
+ };
36
+ }
37
+ };
38
+ });
39
+ var mockCanAccessToSkills = jest.fn(function () {
40
+ return true;
41
+ });
42
+ jest.mock('../../../constants/permissions', function () {
43
+ return {
44
+ canAccessToSkills: function canAccessToSkills() {
45
+ return mockCanAccessToSkills.apply(void 0, arguments);
46
+ }
47
+ };
48
+ });
49
+ jest.mock('../../../hooks/useSkillsCatalog', function () {
50
+ return {
51
+ useSkillsCatalog: function useSkillsCatalog() {
52
+ return {
53
+ skills: [{
54
+ id: 'sk1',
55
+ name: 'Resumir',
56
+ description: 'Desc',
57
+ content: 'Resume'
58
+ }],
59
+ loading: false,
60
+ error: false,
61
+ fetchSkills: jest.fn()
62
+ };
63
+ }
64
+ };
65
+ });
66
+ jest.mock('../../../hooks/useSlashCommands', function () {
67
+ return {
68
+ useSlashCommands: function useSlashCommands() {
69
+ return {
70
+ commands: []
71
+ };
72
+ }
73
+ };
74
+ });
75
+ jest.mock('../../../hooks/useMentionPopover', function () {
76
+ return {
77
+ useMentionPopover: function useMentionPopover() {
78
+ return {
79
+ popoverOpen: false,
80
+ resetMentionOpenTracking: jest.fn(),
81
+ handleTrigger: jest.fn(),
82
+ handleKeyDown: function handleKeyDown() {
83
+ return false;
84
+ },
85
+ popoverNode: null,
86
+ close: jest.fn()
87
+ };
88
+ }
89
+ };
90
+ });
91
+ jest.mock('../../../hooks/useMaiaTaskPanelZIndex', function () {
92
+ return {
93
+ useMaiaTaskPanelZIndex: function useMaiaTaskPanelZIndex() {
94
+ return 1300;
95
+ }
96
+ };
97
+ });
98
+ jest.mock('../../organisms/ModalFileExceeds', function () {
99
+ return {
100
+ ModalFileExceeds: function ModalFileExceeds() {
101
+ return null;
102
+ }
103
+ };
104
+ });
105
+ jest.mock('../SlashCommandDropdown', function () {
106
+ return {
107
+ SlashCommandDropdown: function SlashCommandDropdown() {
108
+ return null;
109
+ }
110
+ };
111
+ });
112
+ jest.mock('../ContextMentionEditor', function () {
113
+ var React = jest.requireActual('react');
114
+ return {
115
+ ContextMentionEditor: React.forwardRef(function (_ref, ref) {
116
+ var onInput = _ref.onInput,
117
+ placeholder = _ref.placeholder,
118
+ disabled = _ref.disabled;
119
+ var _React$useState = React.useState(''),
120
+ _React$useState2 = _slicedToArray(_React$useState, 2),
121
+ value = _React$useState2[0],
122
+ setValue = _React$useState2[1];
123
+ var emit = function emit(text) {
124
+ onInput === null || onInput === void 0 || onInput({
125
+ text: text,
126
+ mentions: [],
127
+ slashCommands: [],
128
+ trigger: {
129
+ active: false,
130
+ query: '',
131
+ atRunLength: 0
132
+ }
133
+ });
134
+ };
135
+ React.useImperativeHandle(ref, function () {
136
+ return {
137
+ focus: jest.fn(),
138
+ clear: function clear() {
139
+ setValue('');
140
+ emit('');
141
+ },
142
+ setPlainText: function setPlainText(text) {
143
+ setValue(text);
144
+ emit(text);
145
+ },
146
+ serialize: function serialize() {
147
+ return {
148
+ text: value,
149
+ mentions: [],
150
+ slashCommands: []
151
+ };
152
+ },
153
+ insertMentionTrigger: jest.fn(),
154
+ insertSlashTrigger: jest.fn(),
155
+ insertMention: jest.fn(),
156
+ insertSlashCommand: jest.fn(),
157
+ insertSkillTrigger: function insertSkillTrigger() {
158
+ onInput === null || onInput === void 0 || onInput({
159
+ text: '#',
160
+ mentions: [],
161
+ slashCommands: [],
162
+ trigger: {
163
+ active: false,
164
+ query: '',
165
+ atRunLength: 0
166
+ },
167
+ hashTrigger: {
168
+ active: true,
169
+ query: ''
170
+ }
171
+ });
172
+ },
173
+ insertSkillMention: insertSkillMention,
174
+ syncTriggerAtRunLength: jest.fn(),
175
+ syncSkillTrigger: jest.fn(),
176
+ hasVisualMultiline: function hasVisualMultiline() {
177
+ return false;
178
+ },
179
+ getEditorClientRect: function getEditorClientRect() {
180
+ return null;
181
+ }
182
+ };
183
+ });
184
+ return /*#__PURE__*/_jsx("textarea", {
185
+ "aria-label": "maia-editor",
186
+ placeholder: placeholder,
187
+ disabled: disabled,
188
+ value: value,
189
+ onChange: function onChange(event) {
190
+ setValue(event.target.value);
191
+ emit(event.target.value);
192
+ }
193
+ });
194
+ })
195
+ };
196
+ });
197
+ var sendButton = function sendButton() {
198
+ return screen.getAllByRole('button').find(function (button) {
199
+ return !button.getAttribute('aria-label') && !button.getAttribute('aria-haspopup');
200
+ });
201
+ };
202
+ describe('MAIAInput', function () {
203
+ beforeEach(function () {
204
+ mockCanAccessToSkills.mockReturnValue(true);
205
+ });
206
+ it('keeps send disabled without text', function () {
207
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
208
+ children: /*#__PURE__*/_jsx(MAIAInput, {
209
+ onSendMessage: jest.fn(),
210
+ placeholder: "Escrib\xED"
211
+ })
212
+ }));
213
+ expect(screen.getByPlaceholderText('Escribí')).toBeInTheDocument();
214
+ expect(sendButton()).toBeDisabled();
215
+ });
216
+ it('sends the typed message and clears the editor', function () {
217
+ var onSendMessage = jest.fn();
218
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
219
+ children: /*#__PURE__*/_jsx(MAIAInput, {
220
+ onSendMessage: onSendMessage
221
+ })
222
+ }));
223
+ fireEvent.change(screen.getByLabelText('maia-editor'), {
224
+ target: {
225
+ value: 'Hola draft'
226
+ }
227
+ });
228
+ fireEvent.click(sendButton());
229
+ expect(onSendMessage).toHaveBeenCalledWith('Hola draft', [], []);
230
+ expect(screen.getByLabelText('maia-editor')).toHaveValue('');
231
+ });
232
+ it('does not send when disabled', function () {
233
+ var onSendMessage = jest.fn();
234
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
235
+ children: /*#__PURE__*/_jsx(MAIAInput, {
236
+ onSendMessage: onSendMessage,
237
+ disabled: true
238
+ })
239
+ }));
240
+ expect(screen.getByLabelText('maia-editor')).toBeDisabled();
241
+ expect(sendButton()).toBeDisabled();
242
+ fireEvent.click(sendButton());
243
+ expect(onSendMessage).not.toHaveBeenCalled();
244
+ });
245
+ it('shows stop while writing', function () {
246
+ var onStopGeneration = jest.fn();
247
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
248
+ children: /*#__PURE__*/_jsx(MAIAInput, {
249
+ onSendMessage: jest.fn(),
250
+ isWriting: true,
251
+ onStopGeneration: onStopGeneration
252
+ })
253
+ }));
254
+ fireEvent.click(sendButton());
255
+ expect(onStopGeneration).toHaveBeenCalled();
256
+ });
257
+ it('opens the plus menu', function () {
258
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
259
+ children: /*#__PURE__*/_jsx(MAIAInput, {
260
+ onSendMessage: jest.fn()
261
+ })
262
+ }));
263
+ fireEvent.click(screen.getByRole('button', {
264
+ name: 'chat.openPlusMenuAria'
265
+ }));
266
+ expect(screen.getByText('chat.plusMenuAttach')).toBeInTheDocument();
267
+ expect(screen.getByText('chat.searchWeb')).toBeInTheDocument();
268
+ });
269
+ it('opens the skills catalog and selects a skill', function () {
270
+ insertSkillMention.mockClear();
271
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
272
+ children: /*#__PURE__*/_jsx(MAIAInput, {
273
+ onSendMessage: jest.fn()
274
+ })
275
+ }));
276
+ fireEvent.click(screen.getByRole('button', {
277
+ name: 'mySkills.dropdownButton'
278
+ }));
279
+ fireEvent.click(screen.getByRole('button', {
280
+ name: /#Resumir/
281
+ }));
282
+ expect(insertSkillMention).toHaveBeenCalledWith({
283
+ id: 'sk1',
284
+ type: 'skill',
285
+ label: '#Resumir'
286
+ });
287
+ });
288
+ it('hides the skills button when MAIA_SKILLS_ACCESS is not granted', function () {
289
+ mockCanAccessToSkills.mockReturnValue(false);
290
+ renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
291
+ children: /*#__PURE__*/_jsx(MAIAInput, {
292
+ onSendMessage: jest.fn()
293
+ })
294
+ }));
295
+ expect(screen.queryByRole('button', {
296
+ name: 'mySkills.dropdownButton'
297
+ })).not.toBeInTheDocument();
298
+ });
299
+ });
300
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciIsIk1BSUFJbnB1dCIsImpzeCIsIl9qc3giLCJpbnNlcnRTa2lsbE1lbnRpb24iLCJqZXN0IiwiZm4iLCJtb2NrIiwiRVZFTlRTIiwiYWlDaGF0UGx1c09wZW4iLCJhaUNoYXRRdWlja0FjdGlvbk9wZW4iLCJhaUNoYXRTa2lsbE9wZW4iLCJhaUNoYXRTa2lsbFNlbGVjdCIsImFpQ2hhdFNraWxsUmVtb3ZlIiwidXNlRXZlbnQiLCJDT1JVc2VyUm9sZSIsIkNMRVZFTCIsIkRJUkVDVE9SIiwiUFJPSkVDVF9NQU5BR0VSIiwiQ09MTEFCT1JBVE9SIiwiRlJFRUxBTkNFUiIsIkNMSUVOVCIsInVzZVVzZXIiLCJpZCIsInJvbGVfaWQiLCJtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMiLCJjYW5BY2Nlc3NUb1NraWxscyIsImFwcGx5IiwiYXJndW1lbnRzIiwidXNlU2tpbGxzQ2F0YWxvZyIsInNraWxscyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImNvbnRlbnQiLCJsb2FkaW5nIiwiZXJyb3IiLCJmZXRjaFNraWxscyIsInVzZVNsYXNoQ29tbWFuZHMiLCJjb21tYW5kcyIsInVzZU1lbnRpb25Qb3BvdmVyIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlS2V5RG93biIsInBvcG92ZXJOb2RlIiwiY2xvc2UiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiTW9kYWxGaWxlRXhjZWVkcyIsIlNsYXNoQ29tbWFuZERyb3Bkb3duIiwiUmVhY3QiLCJyZXF1aXJlQWN0dWFsIiwiQ29udGV4dE1lbnRpb25FZGl0b3IiLCJmb3J3YXJkUmVmIiwiX3JlZiIsInJlZiIsIm9uSW5wdXQiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZSIsInNldFZhbHVlIiwiZW1pdCIsInRleHQiLCJtZW50aW9ucyIsInNsYXNoQ29tbWFuZHMiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwicXVlcnkiLCJhdFJ1bkxlbmd0aCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJmb2N1cyIsImNsZWFyIiwic2V0UGxhaW5UZXh0Iiwic2VyaWFsaXplIiwiaW5zZXJ0TWVudGlvblRyaWdnZXIiLCJpbnNlcnRTbGFzaFRyaWdnZXIiLCJpbnNlcnRNZW50aW9uIiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwiaW5zZXJ0U2tpbGxUcmlnZ2VyIiwiaGFzaFRyaWdnZXIiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwic3luY1NraWxsVHJpZ2dlciIsImhhc1Zpc3VhbE11bHRpbGluZSIsImdldEVkaXRvckNsaWVudFJlY3QiLCJvbkNoYW5nZSIsImV2ZW50IiwidGFyZ2V0Iiwic2VuZEJ1dHRvbiIsImdldEFsbEJ5Um9sZSIsImZpbmQiLCJidXR0b24iLCJnZXRBdHRyaWJ1dGUiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrUmV0dXJuVmFsdWUiLCJpdCIsImNoaWxkcmVuIiwib25TZW5kTWVzc2FnZSIsImV4cGVjdCIsImdldEJ5UGxhY2Vob2xkZXJUZXh0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJ0b0JlRGlzYWJsZWQiLCJjaGFuZ2UiLCJnZXRCeUxhYmVsVGV4dCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJ0b0hhdmVWYWx1ZSIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJvblN0b3BHZW5lcmF0aW9uIiwiaXNXcml0aW5nIiwiZ2V0QnlSb2xlIiwiZ2V0QnlUZXh0IiwibW9ja0NsZWFyIiwidHlwZSIsImxhYmVsIiwicXVlcnlCeVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNQUlBSW5wdXQgfSBmcm9tICcuL01BSUFJbnB1dCdcblxuY29uc3QgaW5zZXJ0U2tpbGxNZW50aW9uID0gamVzdC5mbigpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICBFVkVOVFM6IHtcbiAgICBhaUNoYXRQbHVzT3BlbjogJ0FJX0NIQVRfUExVU19PUEVOJyxcbiAgICBhaUNoYXRRdWlja0FjdGlvbk9wZW46ICdBSV9DSEFUX1FVSUNLX0FDVElPTl9PUEVOJyxcbiAgICBhaUNoYXRTa2lsbE9wZW46ICdBSV9DSEFUX1NLSUxMX09QRU4nLFxuICAgIGFpQ2hhdFNraWxsU2VsZWN0OiAnQUlfQ0hBVF9TS0lMTF9TRUxFQ1QnLFxuICAgIGFpQ2hhdFNraWxsUmVtb3ZlOiAnQUlfQ0hBVF9TS0lMTF9SRU1PVkUnLFxuICB9LFxuICB1c2VFdmVudDogKCkgPT4gamVzdC5mbigpLFxufSkpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcicsICgpID0+ICh7XG4gIENPUlVzZXJSb2xlOiB7XG4gICAgQ0xFVkVMOiAxLFxuICAgIERJUkVDVE9SOiAyLFxuICAgIFBST0pFQ1RfTUFOQUdFUjogMyxcbiAgICBDT0xMQUJPUkFUT1I6IDQsXG4gICAgRlJFRUxBTkNFUjogNSxcbiAgICBDTElFTlQ6IDYsXG4gIH0sXG4gIHVzZVVzZXI6ICgpID0+ICh7IGlkOiA5OSwgcm9sZV9pZDogMyB9KSxcbn0pKVxuXG5jb25zdCBtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMgPSBqZXN0LmZuKCgpID0+IHRydWUpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vY29uc3RhbnRzL3Blcm1pc3Npb25zJywgKCkgPT4gKHtcbiAgY2FuQWNjZXNzVG9Ta2lsbHM6ICguLi5hcmdzOiB1bmtub3duW10pID0+IG1vY2tDYW5BY2Nlc3NUb1NraWxscyguLi5hcmdzKSxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVNraWxsc0NhdGFsb2cnLCAoKSA9PiAoe1xuICB1c2VTa2lsbHNDYXRhbG9nOiAoKSA9PiAoe1xuICAgIHNraWxsczogW3sgaWQ6ICdzazEnLCBuYW1lOiAnUmVzdW1pcicsIGRlc2NyaXB0aW9uOiAnRGVzYycsIGNvbnRlbnQ6ICdSZXN1bWUnIH1dLFxuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBmZXRjaFNraWxsczogamVzdC5mbigpLFxuICB9KSxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMnLCAoKSA9PiAoe1xuICB1c2VTbGFzaENvbW1hbmRzOiAoKSA9PiAoeyBjb21tYW5kczogW10gfSksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VNZW50aW9uUG9wb3ZlcicsICgpID0+ICh7XG4gIHVzZU1lbnRpb25Qb3BvdmVyOiAoKSA9PiAoe1xuICAgIHBvcG92ZXJPcGVuOiBmYWxzZSxcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6IGplc3QuZm4oKSxcbiAgICBoYW5kbGVUcmlnZ2VyOiBqZXN0LmZuKCksXG4gICAgaGFuZGxlS2V5RG93bjogKCkgPT4gZmFsc2UsXG4gICAgcG9wb3Zlck5vZGU6IG51bGwsXG4gICAgY2xvc2U6IGplc3QuZm4oKSxcbiAgfSksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4JywgKCkgPT4gKHtcbiAgdXNlTWFpYVRhc2tQYW5lbFpJbmRleDogKCkgPT4gMTMwMCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uL29yZ2FuaXNtcy9Nb2RhbEZpbGVFeGNlZWRzJywgKCkgPT4gKHtcbiAgTW9kYWxGaWxlRXhjZWVkczogKCkgPT4gbnVsbCxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uL1NsYXNoQ29tbWFuZERyb3Bkb3duJywgKCkgPT4gKHtcbiAgU2xhc2hDb21tYW5kRHJvcGRvd246ICgpID0+IG51bGwsXG59KSlcblxuamVzdC5tb2NrKCcuLi9Db250ZXh0TWVudGlvbkVkaXRvcicsICgpID0+IHtcbiAgY29uc3QgUmVhY3QgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJ3JlYWN0JykgYXMgdHlwZW9mIGltcG9ydCgncmVhY3QnKVxuICByZXR1cm4ge1xuICAgIENvbnRleHRNZW50aW9uRWRpdG9yOiBSZWFjdC5mb3J3YXJkUmVmKFxuICAgICAgKFxuICAgICAgICB7XG4gICAgICAgICAgb25JbnB1dCxcbiAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgfToge1xuICAgICAgICAgIG9uSW5wdXQ/OiAoc3RhdGU6IHtcbiAgICAgICAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgICAgICAgbWVudGlvbnM6IHVua25vd25bXVxuICAgICAgICAgICAgc2xhc2hDb21tYW5kczogdW5rbm93bltdXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICAgICAgfSkgPT4gdm9pZFxuICAgICAgICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gICAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIH0sXG4gICAgICAgIHJlZjoge1xuICAgICAgICAgIGZvY3VzOiAoKSA9PiB2b2lkXG4gICAgICAgICAgY2xlYXI6ICgpID0+IHZvaWRcbiAgICAgICAgICBzZXRQbGFpblRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWRcbiAgICAgICAgICBzZXJpYWxpemU6ICgpID0+IHsgdGV4dDogc3RyaW5nOyBtZW50aW9uczogdW5rbm93bltdOyBzbGFzaENvbW1hbmRzOiB1bmtub3duW10gfVxuICAgICAgICAgIGluc2VydE1lbnRpb25UcmlnZ2VyOiAoKSA9PiB2b2lkXG4gICAgICAgIH0gfCBudWxsXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSgnJylcbiAgICAgICAgY29uc3QgZW1pdCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIG1lbnRpb25zOiBbXSxcbiAgICAgICAgICAgIHNsYXNoQ29tbWFuZHM6IFtdLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICAgIGZvY3VzOiBqZXN0LmZuKCksXG4gICAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFZhbHVlKCcnKVxuICAgICAgICAgICAgZW1pdCgnJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldFBsYWluVGV4dDogKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc2V0VmFsdWUodGV4dClcbiAgICAgICAgICAgIGVtaXQodGV4dClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNlcmlhbGl6ZTogKCkgPT4gKHsgdGV4dDogdmFsdWUsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfSksXG4gICAgICAgICAgaW5zZXJ0TWVudGlvblRyaWdnZXI6IGplc3QuZm4oKSxcbiAgICAgICAgICBpbnNlcnRTbGFzaFRyaWdnZXI6IGplc3QuZm4oKSxcbiAgICAgICAgICBpbnNlcnRNZW50aW9uOiBqZXN0LmZuKCksXG4gICAgICAgICAgaW5zZXJ0U2xhc2hDb21tYW5kOiBqZXN0LmZuKCksXG4gICAgICAgICAgaW5zZXJ0U2tpbGxUcmlnZ2VyOiAoKSA9PiB7XG4gICAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgICB0ZXh0OiAnIycsXG4gICAgICAgICAgICAgIG1lbnRpb25zOiBbXSxcbiAgICAgICAgICAgICAgc2xhc2hDb21tYW5kczogW10sXG4gICAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IHRydWUsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluc2VydFNraWxsTWVudGlvbixcbiAgICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoOiBqZXN0LmZuKCksXG4gICAgICAgICAgc3luY1NraWxsVHJpZ2dlcjogamVzdC5mbigpLFxuICAgICAgICAgIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4gZmFsc2UsXG4gICAgICAgICAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gbnVsbCxcbiAgICAgICAgfSkpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJtYWlhLWVkaXRvclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBzZXRWYWx1ZShldmVudC50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICAgIGVtaXQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9XG4gICAgKSxcbiAgfVxufSlcblxuY29uc3Qgc2VuZEJ1dHRvbiA9ICgpID0+XG4gIHNjcmVlblxuICAgIC5nZXRBbGxCeVJvbGUoJ2J1dHRvbicpXG4gICAgLmZpbmQoYnV0dG9uID0+ICFidXR0b24uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiYgIWJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtaGFzcG9wdXAnKSlcblxuZGVzY3JpYmUoJ01BSUFJbnB1dCcsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgbW9ja0NhbkFjY2Vzc1RvU2tpbGxzLm1vY2tSZXR1cm5WYWx1ZSh0cnVlKVxuICB9KVxuXG4gIGl0KCdrZWVwcyBzZW5kIGRpc2FibGVkIHdpdGhvdXQgdGV4dCcsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSBwbGFjZWhvbGRlcj1cIkVzY3JpYsOtXCIgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5UGxhY2Vob2xkZXJUZXh0KCdFc2NyaWLDrScpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNlbmRCdXR0b24oKSkudG9CZURpc2FibGVkKClcbiAgfSlcblxuICBpdCgnc2VuZHMgdGhlIHR5cGVkIG1lc3NhZ2UgYW5kIGNsZWFycyB0aGUgZWRpdG9yJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17b25TZW5kTWVzc2FnZX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBmaXJlRXZlbnQuY2hhbmdlKHNjcmVlbi5nZXRCeUxhYmVsVGV4dCgnbWFpYS1lZGl0b3InKSwgeyB0YXJnZXQ6IHsgdmFsdWU6ICdIb2xhIGRyYWZ0JyB9IH0pXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNlbmRCdXR0b24oKSBhcyBIVE1MQnV0dG9uRWxlbWVudClcblxuICAgIGV4cGVjdChvblNlbmRNZXNzYWdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnSG9sYSBkcmFmdCcsIFtdLCBbXSlcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdtYWlhLWVkaXRvcicpKS50b0hhdmVWYWx1ZSgnJylcbiAgfSlcblxuICBpdCgnZG9lcyBub3Qgc2VuZCB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU2VuZE1lc3NhZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17b25TZW5kTWVzc2FnZX0gZGlzYWJsZWQgLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5TGFiZWxUZXh0KCdtYWlhLWVkaXRvcicpKS50b0JlRGlzYWJsZWQoKVxuICAgIGV4cGVjdChzZW5kQnV0dG9uKCkpLnRvQmVEaXNhYmxlZCgpXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNlbmRCdXR0b24oKSBhcyBIVE1MQnV0dG9uRWxlbWVudClcbiAgICBleHBlY3Qob25TZW5kTWVzc2FnZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCdzaG93cyBzdG9wIHdoaWxlIHdyaXRpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25TdG9wR2VuZXJhdGlvbiA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPE1BSUFJbnB1dCBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IGlzV3JpdGluZyBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzZW5kQnV0dG9uKCkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpXG4gICAgZXhwZWN0KG9uU3RvcEdlbmVyYXRpb24pLnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCdvcGVucyB0aGUgcGx1cyBtZW51JywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICAgICAgPE1BSUFJbnB1dCBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgKVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ2NoYXQub3BlblBsdXNNZW51QXJpYScgfSkpXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnY2hhdC5wbHVzTWVudUF0dGFjaCcpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ2NoYXQuc2VhcmNoV2ViJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcblxuICBpdCgnb3BlbnMgdGhlIHNraWxscyBjYXRhbG9nIGFuZCBzZWxlY3RzIGEgc2tpbGwnLCAoKSA9PiB7XG4gICAgaW5zZXJ0U2tpbGxNZW50aW9uLm1vY2tDbGVhcigpXG5cbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEdsb2JhbENvbnRleHRUZXN0UHJvdmlkZXI+XG4gICAgICAgIDxNQUlBSW5wdXQgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSAvPlxuICAgICAgPC9HbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdteVNraWxscy5kcm9wZG93bkJ1dHRvbicgfSkpXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvI1Jlc3VtaXIvIH0pKVxuICAgIGV4cGVjdChpbnNlcnRTa2lsbE1lbnRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgaWQ6ICdzazEnLCB0eXBlOiAnc2tpbGwnLCBsYWJlbDogJyNSZXN1bWlyJyB9KVxuICB9KVxuXG4gIGl0KCdoaWRlcyB0aGUgc2tpbGxzIGJ1dHRvbiB3aGVuIE1BSUFfU0tJTExTX0FDQ0VTUyBpcyBub3QgZ3JhbnRlZCcsICgpID0+IHtcbiAgICBtb2NrQ2FuQWNjZXNzVG9Ta2lsbHMubW9ja1JldHVyblZhbHVlKGZhbHNlKVxuXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlxuICAgICAgICA8TUFJQUlucHV0IG9uU2VuZE1lc3NhZ2U9e2plc3QuZm4oKX0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdteVNraWxscy5kcm9wZG93bkJ1dHRvbicgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRixTQUFTQyx5QkFBeUIsUUFBUSw4QkFBOEI7QUFDeEUsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFBQSxTQUFBQyxHQUFBLElBQUFD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
@@ -12,21 +12,14 @@ var customInputStyles = css(["outline:none;background:linear-gradient(white,whit
12
12
  export var StyledMAIAInputWrapper = styled.div.withConfig({
13
13
  displayName: "styles__StyledMAIAInputWrapper",
14
14
  componentId: "sc-cs6u9w-0"
15
- })(["box-sizing:border-box;position:relative;width:100%;border-radius:8px;transition:border-color 0.2s ease,box-shadow 0.2s ease;padding:8px;cursor:", ";display:flex;min-height:58px;max-height:", "px;gap:", "px;flex-direction:column;align-items:flex-start;overflow:hidden;border:1px solid ", ";box-shadow:none;", " &:focus-within{", "}", " ", ""], function (_ref) {
15
+ })(["box-sizing:border-box;position:relative;width:100%;border-radius:8px;transition:border-color 0.2s ease,box-shadow 0.2s ease;padding:8px;cursor:", ";display:flex;min-height:58px;max-height:", "px;gap:", "px;flex-direction:column;align-items:flex-start;overflow:hidden;border:1px solid ", ";box-shadow:none;&:focus-within{", "}", " ", ""], function (_ref) {
16
16
  var disabled = _ref.disabled;
17
17
  return disabled ? 'not-allowed' : 'auto';
18
- }, MAIA_INPUT_WRAPPER_MAX_HEIGHT_PX, MAIA_INPUT_CHIPS_CONTENT_GAP_PX, colors.text.disabled, function (_ref2) {
19
- var $usageBlocked = _ref2.$usageBlocked;
20
- return $usageBlocked && css(["position:relative;z-index:1;border-color:#b3b3b3;background:#ffffff;&:focus-within{border:1px solid #b3b3b3;box-shadow:none;animation:none;background:#ffffff;}"]);
18
+ }, MAIA_INPUT_WRAPPER_MAX_HEIGHT_PX, MAIA_INPUT_CHIPS_CONTENT_GAP_PX, colors.text.disabled, customInputStyles, function (_ref2) {
19
+ var hasAttachments = _ref2.hasAttachments;
20
+ return hasAttachments && css(["", ""], customInputStyles);
21
21
  }, function (_ref3) {
22
- var $usageBlocked = _ref3.$usageBlocked;
23
- return !$usageBlocked && css(["", ""], customInputStyles);
24
- }, function (_ref4) {
25
- var hasAttachments = _ref4.hasAttachments,
26
- $usageBlocked = _ref4.$usageBlocked;
27
- return hasAttachments && !$usageBlocked && css(["", ""], customInputStyles);
28
- }, function (_ref5) {
29
- var $fileDragActive = _ref5.$fileDragActive;
22
+ var $fileDragActive = _ref3.$fileDragActive;
30
23
  return $fileDragActive && css(["border:1px dashed ", ";background:rgba(45,119,189,0.06);box-shadow:none;animation:none;"], BLUE_IA_COLORS[500]);
31
24
  });
32
25
  export var StyledMAIADropOverlay = styled.div.withConfig({
@@ -82,14 +75,14 @@ export var StyledMAIAInput = styled.textarea.withConfig({
82
75
  export var StyledMAIASendButton = styled(ClearButton).withConfig({
83
76
  displayName: "styles__StyledMAIASendButton",
84
77
  componentId: "sc-cs6u9w-11"
85
- })(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{background-color:", " !important;}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;path{stroke:white !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref6) {
86
- var hasValues = _ref6.hasValues;
78
+ })(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{background-color:", " !important;}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;path{stroke:white !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref4) {
79
+ var hasValues = _ref4.hasValues;
87
80
  return hasValues ? "".concat(BLUE_IA_COLORS[500]) : '#f2f2f2';
88
- }, function (_ref7) {
89
- var hasValues = _ref7.hasValues;
81
+ }, function (_ref5) {
82
+ var hasValues = _ref5.hasValues;
90
83
  return hasValues && css(["path{stroke:white !important;}"]);
91
- }, BLUE_IA_COLORS[700], function (_ref8) {
92
- var hasValues = _ref8.hasValues;
84
+ }, BLUE_IA_COLORS[700], function (_ref6) {
85
+ var hasValues = _ref6.hasValues;
93
86
  return !hasValues && css(["svg path{stroke:", " !important;}"], colors.text.disabled);
94
87
  });
95
88
  export var SCMIWrapperAttachments = styled.div.withConfig({
@@ -119,18 +112,18 @@ export var SCMIAttachmentName = styled.span.withConfig({
119
112
  export var PlusMenuToolsRow = styled.div.withConfig({
120
113
  displayName: "styles__PlusMenuToolsRow",
121
114
  componentId: "sc-cs6u9w-18"
122
- })(["display:flex;align-items:center;gap:8px;"]);
115
+ })(["display:flex;align-items:center;"]);
123
116
  export var PlusToggleButton = styled.button.withConfig({
124
117
  displayName: "styles__PlusToggleButton",
125
118
  componentId: "sc-cs6u9w-19"
126
- })(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], function (_ref9) {
127
- var $menuOpen = _ref9.$menuOpen;
119
+ })(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], function (_ref7) {
120
+ var $menuOpen = _ref7.$menuOpen;
128
121
  return $menuOpen ? '#f2f2f2' : colors.white.main;
129
122
  });
130
123
  export var SkillsToggleButton = styled.button.withConfig({
131
124
  displayName: "styles__SkillsToggleButton",
132
125
  componentId: "sc-cs6u9w-20"
133
- })(["display:flex;align-items:center;gap:var(--cor-space-space-xs,4px);box-sizing:border-box;height:32px;padding:0 8px;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;color:var(--cor-color-icon-subtle,#808080);font-family:var(--cor-typography-font-family,'Work Sans');font-size:var(--cor-typography-font-size-sm,14px);font-style:normal;font-weight:400;line-height:var(--cor-typography-line-height-20,20px);letter-spacing:var(--cor-typography-letter-spacing-0,0);white-space:nowrap;& > svg{flex-shrink:0;}&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], colors.white.main);
126
+ })(["display:flex;width:32px;height:32px;box-sizing:border-box;padding:0;justify-content:center;align-items:center;border:none;border-radius:8px;background:", ";cursor:pointer;flex-shrink:0;color:var(--cor-color-icon-subtle,#808080);&:hover:not(:disabled),&:focus-visible:not(:disabled){background:#f2f2f2;}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:none;}"], colors.white.main);
134
127
  export var PlusMenuPaper = styled.div.withConfig({
135
128
  displayName: "styles__PlusMenuPaper",
136
129
  componentId: "sc-cs6u9w-21"
@@ -146,7 +139,7 @@ export var PlusMenuDivider = styled.div.withConfig({
146
139
  export var PlusMenuItemButton = styled.button.withConfig({
147
140
  displayName: "styles__PlusMenuItemButton",
148
141
  componentId: "sc-cs6u9w-24"
149
- })(["display:flex;width:100%;padding:8px;align-items:center;gap:8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;&:hover:not(:disabled){background:", ";}&:disabled{cursor:not-allowed;opacity:0.5;}&:focus-visible{outline:2px solid ", ";outline-offset:-2px;}"], colors.background.secondary, BLUE_IA_COLORS[500]);
142
+ })(["display:flex;width:100%;padding:8px;align-items:center;gap:8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-family:inherit;text-align:left;box-sizing:border-box;&:hover{background:", ";}&:focus-visible{outline:2px solid ", ";outline-offset:-2px;}"], colors.background.secondary, BLUE_IA_COLORS[500]);
150
143
  export var PlusMenuItemLabel = styled.span.withConfig({
151
144
  displayName: "styles__PlusMenuItemLabel",
152
145
  componentId: "sc-cs6u9w-25"
@@ -154,27 +147,27 @@ export var PlusMenuItemLabel = styled.span.withConfig({
154
147
  export var ActiveToolChipRoot = styled.div.withConfig({
155
148
  displayName: "styles__ActiveToolChipRoot",
156
149
  componentId: "sc-cs6u9w-26"
157
- })(["display:flex;max-width:144px;padding:4px 8px;align-items:center;gap:2px;box-sizing:border-box;cursor:default;border-radius:", ";background:", ";box-shadow:", ";transition:background-color 0.22s ease,border-radius 0.22s ease,box-shadow 0.22s ease;", ""], function (_ref0) {
158
- var $hovered = _ref0.$hovered;
150
+ })(["display:flex;max-width:144px;padding:4px 8px;align-items:center;gap:2px;box-sizing:border-box;cursor:default;border-radius:", ";background:", ";box-shadow:", ";transition:background-color 0.22s ease,border-radius 0.22s ease,box-shadow 0.22s ease;", ""], function (_ref8) {
151
+ var $hovered = _ref8.$hovered;
159
152
  return $hovered ? '16px' : '0';
160
- }, function (_ref1) {
161
- var $hovered = _ref1.$hovered;
153
+ }, function (_ref9) {
154
+ var $hovered = _ref9.$hovered;
162
155
  return $hovered ? MAIA_CHAT_INPUT_UI.chipSurfaceHover : 'transparent';
163
- }, function (_ref10) {
164
- var $hovered = _ref10.$hovered;
156
+ }, function (_ref0) {
157
+ var $hovered = _ref0.$hovered;
165
158
  return $hovered ? '0 1px 3px rgba(0, 0, 0, 0.07)' : 'none';
166
- }, function (_ref11) {
167
- var $exiting = _ref11.$exiting;
159
+ }, function (_ref1) {
160
+ var $exiting = _ref1.$exiting;
168
161
  return $exiting && css(["pointer-events:none;animation:", " 0.22s ease forwards;"], activeToolChipOut);
169
162
  });
170
163
  export var ActiveToolChipIconButton = styled.button.withConfig({
171
164
  displayName: "styles__ActiveToolChipIconButton",
172
165
  componentId: "sc-cs6u9w-27"
173
- })(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:transform 0.2s ease;svg{display:block;}", " &:hover{", "}&:focus-visible{outline:2px solid ", ";outline-offset:1px;}"], function (_ref12) {
174
- var $closeShown = _ref12.$closeShown;
166
+ })(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:transform 0.2s ease;svg{display:block;}", " &:hover{", "}&:focus-visible{outline:2px solid ", ";outline-offset:1px;}"], function (_ref10) {
167
+ var $closeShown = _ref10.$closeShown;
175
168
  return $closeShown && css(["svg{animation:", " 0.24s ease forwards;}"], activeToolChipCloseIconIn);
176
- }, function (_ref13) {
177
- var $closeShown = _ref13.$closeShown;
169
+ }, function (_ref11) {
170
+ var $closeShown = _ref11.$closeShown;
178
171
  return $closeShown && css(["transform:scale(1.06);"]);
179
172
  }, BLUE_IA_COLORS[500]);
180
173
  export var ActiveToolChipLabel = styled.span.withConfig({
@@ -190,4 +183,4 @@ export var StyledMAIAStopButton = styled.button.withConfig({
190
183
  displayName: "styles__StyledMAIAStopButton",
191
184
  componentId: "sc-cs6u9w-30"
192
185
  })(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:", " !important;", "{background-color:", " !important;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], BLUE_IA_COLORS[50], StyledMAIAStopIcon, BLUE_IA_COLORS[500]);
193
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiJHVzYWdlQmxvY2tlZCIsIl9yZWYzIiwiX3JlZjQiLCJoYXNBdHRhY2htZW50cyIsIl9yZWY1IiwiJGZpbGVEcmFnQWN0aXZlIiwiU3R5bGVkTUFJQURyb3BPdmVybGF5IiwiU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCIsIlNDSW5wdXRFZGl0b3JDZWxsIiwiU0NJbnB1dENoaXBzUm93IiwiU0NJbnB1dFRvb2xiYXJSb3ciLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlNDSW5wdXRNZXRhSW5kaWNhdG9ycyIsIlNDSW5wdXRNZXRhSWNvbkJ1dHRvbiIsInNwYW4iLCJ3aGl0ZSIsIm1haW4iLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjYiLCJoYXNWYWx1ZXMiLCJjb25jYXQiLCJfcmVmNyIsIl9yZWY4IiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50IiwiU0NNSUF0dGFjaG1lbnRJY29uIiwiU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsImJ1dHRvbiIsIlNDTUlBdHRhY2htZW50TmFtZSIsIlBsdXNNZW51VG9vbHNSb3ciLCJQbHVzVG9nZ2xlQnV0dG9uIiwiX3JlZjkiLCIkbWVudU9wZW4iLCJTa2lsbHNUb2dnbGVCdXR0b24iLCJQbHVzTWVudVBhcGVyIiwiZ3JheSIsImxpZ2h0IiwiUGx1c01lbnVJbm5lckNvbHVtbiIsIlBsdXNNZW51RGl2aWRlciIsIlBsdXNNZW51SXRlbUJ1dHRvbiIsImJhY2tncm91bmQiLCJQbHVzTWVudUl0ZW1MYWJlbCIsIm1lbnVJY29uIiwiQWN0aXZlVG9vbENoaXBSb290IiwiX3JlZjAiLCIkaG92ZXJlZCIsIl9yZWYxIiwiY2hpcFN1cmZhY2VIb3ZlciIsIl9yZWYxMCIsIl9yZWYxMSIsIiRleGl0aW5nIiwiQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uIiwiX3JlZjEyIiwiJGNsb3NlU2hvd24iLCJfcmVmMTMiLCJBY3RpdmVUb29sQ2hpcExhYmVsIiwicHJpbWFyeSIsInN0b3BQdWxzZSIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgc2Nyb2xsYWJsZVN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zaGFyZWQvc2Nyb2xsYWJsZSdcbmltcG9ydCB7IENsZWFyQnV0dG9uIH0gZnJvbSAnLi4vQ2xlYXJCdXR0b24nXG5pbXBvcnQge1xuICBNQUlBX0lOUFVUX0NISVBTX0NPTlRFTlRfR0FQX1BYLFxuICBNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCxcbiAgTUFJQV9JTlBVVF9XUkFQUEVSX01BWF9IRUlHSFRfUFgsXG59IGZyb20gJy4vbWFpYUlucHV0TGF5b3V0J1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246XG4gICAgICAwJSAwJSxcbiAgICAgIDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBhY3RpdmVUb29sQ2hpcENsb3NlSWNvbkluID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwLjU1O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuYFxuXG5jb25zdCBhY3RpdmVUb29sQ2hpcE91dCA9IGtleWZyYW1lc2BcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKSB0cmFuc2xhdGVZKDNweCk7XG4gIH1cbmBcblxuY29uc3QgY3VzdG9tSW5wdXRTdHlsZXMgPSBjc3NgXG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSkgcGFkZGluZy1ib3gsXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNGQzNTY5IDAlLCAjODc0MGJmIDU5LjYyJSwgIzJkNzdiZCAxMDAlKSBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIDEwMCUgMTAwJSxcbiAgICAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogJHtmbG93fSAzcyBlYXNlIGluZmluaXRlO1xuICBib3gtc2hhZG93OlxuICAgIDNweCA0cHggMTRweCAwIHJnYmEoMTM1LCA2NCwgMTkxLCAwLjE1KSxcbiAgICAtM3B4IC00cHggMTRweCAwIHJnYmEoNDUsIDExOSwgMTg5LCAwLjE1KTtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICR1c2FnZUJsb2NrZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbiAgLyoqIEVzdGFkbyBpbmljaWFsOiB0b29sYmFyIGVuIHVuYSBzb2xhIGzDrW5lYSBzaW4gYWRqdW50b3MgbmkgdG9vbHMgZGVsICsgbmkgbXVsdGlsaW5lICovXG4gIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyPzogYm9vbGVhblxuICAkZmlsZURyYWdBY3RpdmU/OiBib29sZWFuXG59PmBcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB0cmFuc2l0aW9uOlxuICAgIGJvcmRlci1jb2xvciAwLjJzIGVhc2UsXG4gICAgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogNThweDtcbiAgbWF4LWhlaWdodDogJHtNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWH1weDtcbiAgZ2FwOiAke01BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFh9cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9O1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gICR7KHsgJHVzYWdlQmxvY2tlZCB9KSA9PlxuICAgICR1c2FnZUJsb2NrZWQgJiZcbiAgICBjc3NgXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYjNiM2IzO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcblxuICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYjNiM2IzO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgYH1cblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHsoeyAkdXNhZ2VCbG9ja2VkIH0pID0+XG4gICAgICAhJHVzYWdlQmxvY2tlZCAmJlxuICAgICAgY3NzYFxuICAgICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgICAgYH1cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMsICR1c2FnZUJsb2NrZWQgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgICEkdXNhZ2VCbG9ja2VkICYmXG4gICAgY3NzYFxuICAgICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgICBgfVxuXG4gICR7KHsgJGZpbGVEcmFnQWN0aXZlIH0pID0+XG4gICAgJGZpbGVEcmFnQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ1LCAxMTksIDE4OSwgMC4wNik7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBRHJvcE92ZXJsYXkgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuYFxuXG4vKiogVG9vbGJhciBmaWphIGVuIDIgZmlsYXM6IGlucHV0IGFycmliYSwgKyAvIHNlbmQgYWJham8gKHRvb2xiYXIgbm8gc2Nyb2xsZWEpLiAqL1xuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBncmlkO1xuICB3aWR0aDogMTAwJTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCBhdXRvKSBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcm93LWdhcDogJHtNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWH1weDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5gXG5cbi8qKiBDZWxkYSBkZWwgZWRpdG9yIChlbCBzY3JvbGwgdml2ZSBlbiBlbCBjb250ZW50ZWRpdGFibGUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRFZGl0b3JDZWxsID0gc3R5bGVkLmRpdmBcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIEZpbGEgY29tcGFydGlkYTogY2hpcCBkZSBjb250ZXh0byArIGNoaXBzIGRlIGF0dGFjaG1lbnRzICh3cmFwKS4gKi9cbmV4cG9ydCBjb25zdCBTQ0lucHV0Q2hpcHNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG5gXG5cbi8qKiBGaWxhIGluZmVyaW9yIGRlIGJvdG9uZXM6IHNpZW1wcmUgdmlzaWJsZSwgbnVuY2Egc2Nyb2xsZWEgY29uIGVsIHRleHRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRUb29sYmFyUm93ID0gc3R5bGVkLmRpdmBcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZ3JpZC1yb3c6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLWhlaWdodDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbmBcblxuLyoqIEluZGljYWRvcmVzIGEgbGEgaXpxdWllcmRhIGRlbCBzZW5kIChhY2Nlc28gQ09SIC8gbW9kZWxvKSBwYXJhIGFnZW50ZXMgY3VzdG9tLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRNZXRhSW5kaWNhdG9ycyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDSW5wdXRNZXRhSWNvbkJ1dHRvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogZGVmYXVsdDtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dCA9IHN0eWxlZC50ZXh0YXJlYTx7XG4gIGFsaWduQnV0dG9ucz86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCdcbiAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PzogJ3N0YWNrZWRSb3dzJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIG1heC1oZWlnaHQ6IDE3MHB4O1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5zZWNvbmRhcnl9O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTZW5kQnV0dG9uID0gc3R5bGVkKENsZWFyQnV0dG9uKTx7IGhhc1ZhbHVlcz86IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaGFzVmFsdWVzIH0pID0+IChoYXNWYWx1ZXMgPyBgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfWAgOiAnI2YyZjJmMicpfTtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICBoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s3MDBdfSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBzdmcge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcblxuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICAhaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIHN2ZyBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6ICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlckF0dGFjaG1lbnRzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjRweDtcbiAgbWF4LXdpZHRoOiAxMThweDtcbiAgcGFkZGluZzogNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50SWNvbiA9IHN0eWxlZC5zcGFuYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBzdmcsXG4gIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50RmlsZUljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uID0gc3R5bGVkLmJ1dHRvbmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzY2NjY2NjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgfVxuXG4gICR7U0NNSUF0dGFjaG1lbnR9OmhvdmVyICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cblxuICAmOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnROYW1lID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzY2NjY2NjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVUb29sc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkbWVudU9wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHsoeyAkbWVudU9wZW4gfSkgPT4gKCRtZW51T3BlbiA/ICcjZjJmMmYyJyA6IGNvbG9ycy53aGl0ZS5tYWluKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1cy12aXNpYmxlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNraWxsc1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY29yLXNwYWNlLXNwYWNlLXhzLCA0cHgpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb3ItY29sb3ItaWNvbi1zdWJ0bGUsICM4MDgwODApO1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LXNpemUtc20sIDE0cHgpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1saW5lLWhlaWdodC0yMCwgMjBweCk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1sZXR0ZXItc3BhY2luZy0wLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmID4gc3ZnIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXMtdmlzaWJsZTpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVBhcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAyMDlweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SW5uZXJDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudURpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTcwcHg7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5jb2xvcnMuZ3JheS5saWdodH07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUxhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgY29sb3I6ICR7TUFJQV9DSEFUX0lOUFVUX1VJLm1lbnVJY29ufTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwUm9vdCA9IHN0eWxlZC5kaXY8eyAkaG92ZXJlZDogYm9vbGVhbjsgJGV4aXRpbmc6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTQ0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzE2cHgnIDogJzAnKX07XG4gIGJhY2tncm91bmQ6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gTUFJQV9DSEFUX0lOUFVUX1VJLmNoaXBTdXJmYWNlSG92ZXIgOiAndHJhbnNwYXJlbnQnKX07XG4gIGJveC1zaGFkb3c6ICR7KHsgJGhvdmVyZWQgfSkgPT4gKCRob3ZlcmVkID8gJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDcpJyA6ICdub25lJyl9O1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4yMnMgZWFzZSxcbiAgICBib3JkZXItcmFkaXVzIDAuMjJzIGVhc2UsXG4gICAgYm94LXNoYWRvdyAwLjIycyBlYXNlO1xuXG4gICR7KHsgJGV4aXRpbmcgfSkgPT5cbiAgICAkZXhpdGluZyAmJlxuICAgIGNzc2BcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYW5pbWF0aW9uOiAke2FjdGl2ZVRvb2xDaGlwT3V0fSAwLjIycyBlYXNlIGZvcndhcmRzO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGNsb3NlU2hvd246IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgJGNsb3NlU2hvd24gJiZcbiAgICBjc3NgXG4gICAgICBzdmcge1xuICAgICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBDbG9zZUljb25Jbn0gMC4yNHMgZWFzZSBmb3J3YXJkcztcbiAgICAgIH1cbiAgICBgfVxuXG4gIC8qIFNjYWxlIHNvbG8gY29uIGxhIGNydXogdmlzaWJsZSB5IGhvdmVyIHNvYnJlIGVsbGEgKG5vIHNvYnJlIGVsIGNoaXAvaWNvbm8gZGUgdG9vbCkgKi9cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkY2xvc2VTaG93biB9KSA9PlxuICAgICAgJGNsb3NlU2hvd24gJiZcbiAgICAgIGNzc2BcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgICAgIGB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuYFxuY29uc3Qgc3RvcFB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYW5pbWF0aW9uOiAke3N0b3BQdWxzZX0gMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MF19ICFpbXBvcnRhbnQ7XG5cbiAgICAke1N0eWxlZE1BSUFTdG9wSWNvbn0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuIl0sIm1hcHBp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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsIk1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgiLCJNQUlBX0lOUFVUX0lOVEVSTkFMX0dBUF9QWCIsIk1BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYIiwiZmxvdyIsImFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4iLCJhY3RpdmVUb29sQ2hpcE91dCIsImN1c3RvbUlucHV0U3R5bGVzIiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImRpc2FibGVkIiwidGV4dCIsIl9yZWYyIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmMyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTQ0lucHV0RWRpdG9yQ2VsbCIsIlNDSW5wdXRDaGlwc1JvdyIsIlNDSW5wdXRUb29sYmFyUm93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwiLCJTQ0lucHV0TWV0YUluZGljYXRvcnMiLCJTQ0lucHV0TWV0YUljb25CdXR0b24iLCJzcGFuIiwid2hpdGUiLCJtYWluIiwiU3R5bGVkTUFJQUlucHV0IiwidGV4dGFyZWEiLCJzZWNvbmRhcnkiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIl9yZWY0IiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjUiLCJfcmVmNiIsIlNDTUlXcmFwcGVyQXR0YWNobWVudHMiLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50SWNvbiIsIlNDTUlBdHRhY2htZW50RmlsZUljb24iLCJTQ01JQXR0YWNobWVudERlbGV0ZUljb24iLCJidXR0b24iLCJTQ01JQXR0YWNobWVudE5hbWUiLCJQbHVzTWVudVRvb2xzUm93IiwiUGx1c1RvZ2dsZUJ1dHRvbiIsIl9yZWY3IiwiJG1lbnVPcGVuIiwiU2tpbGxzVG9nZ2xlQnV0dG9uIiwiUGx1c01lbnVQYXBlciIsImdyYXkiLCJsaWdodCIsIlBsdXNNZW51SW5uZXJDb2x1bW4iLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUl0ZW1CdXR0b24iLCJiYWNrZ3JvdW5kIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJtZW51SWNvbiIsIkFjdGl2ZVRvb2xDaGlwUm9vdCIsIl9yZWY4IiwiJGhvdmVyZWQiLCJfcmVmOSIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMCIsIl9yZWYxIiwiJGV4aXRpbmciLCJBY3RpdmVUb29sQ2hpcEljb25CdXR0b24iLCJfcmVmMTAiLCIkY2xvc2VTaG93biIsIl9yZWYxMSIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJwcmltYXJ5Iiwic3RvcFB1bHNlIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQVN0b3BCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBzY3JvbGxhYmxlU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3NoYXJlZC9zY3JvbGxhYmxlJ1xuaW1wb3J0IHsgQ2xlYXJCdXR0b24gfSBmcm9tICcuLi9DbGVhckJ1dHRvbidcbmltcG9ydCB7XG4gIE1BSUFfSU5QVVRfQ0hJUFNfQ09OVEVOVF9HQVBfUFgsXG4gIE1BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYLFxuICBNQUlBX0lOUFVUX1dSQVBQRVJfTUFYX0hFSUdIVF9QWCxcbn0gZnJvbSAnLi9tYWlhSW5wdXRMYXlvdXQnXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA1OHB4O1xuICBtYXgtaGVpZ2h0OiAke01BSUFfSU5QVVRfV1JBUFBFUl9NQVhfSEVJR0hUX1BYfXB4O1xuICBnYXA6ICR7TUFJQV9JTlBVVF9DSElQU19DT05URU5UX0dBUF9QWH1weDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMudGV4dC5kaXNhYmxlZH07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gIH1cblxuICAkeyh7IGhhc0F0dGFjaG1lbnRzIH0pID0+XG4gICAgaGFzQXR0YWNobWVudHMgJiZcbiAgICBjc3NgXG4gICAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICAgIGB9XG5cbiAgJHsoeyAkZmlsZURyYWdBY3RpdmUgfSkgPT5cbiAgICAkZmlsZURyYWdBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDExOSwgMTg5LCAwLjA2KTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFEcm9wT3ZlcmxheSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5gXG5cbi8qKiBUb29sYmFyIGZpamEgZW4gMiBmaWxhczogaW5wdXQgYXJyaWJhLCArIC8gc2VuZCBhYmFqbyAodG9vbGJhciBubyBzY3JvbGxlYSkuICovXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDAsIGF1dG8pIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICByb3ctZ2FwOiAke01BSUFfSU5QVVRfSU5URVJOQUxfR0FQX1BYfXB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIENlbGRhIGRlbCBlZGl0b3IgKGVsIHNjcm9sbCB2aXZlIGVuIGVsIGNvbnRlbnRlZGl0YWJsZSkuICovXG5leHBvcnQgY29uc3QgU0NJbnB1dEVkaXRvckNlbGwgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG4vKiogRmlsYSBjb21wYXJ0aWRhOiBjaGlwIGRlIGNvbnRleHRvICsgY2hpcHMgZGUgYXR0YWNobWVudHMgKHdyYXApLiAqL1xuZXhwb3J0IGNvbnN0IFNDSW5wdXRDaGlwc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbmBcblxuLyoqIEZpbGEgaW5mZXJpb3IgZGUgYm90b25lczogc2llbXByZSB2aXNpYmxlLCBudW5jYSBzY3JvbGxlYSBjb24gZWwgdGV4dG8uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dFRvb2xiYXJSb3cgPSBzdHlsZWQuZGl2YFxuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBncmlkLXJvdzogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuYFxuXG4vKiogSW5kaWNhZG9yZXMgYSBsYSBpenF1aWVyZGEgZGVsIHNlbmQgKGFjY2VzbyBDT1IgLyBtb2RlbG8pIHBhcmEgYWdlbnRlcyBjdXN0b20uICovXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJbmRpY2F0b3JzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NJbnB1dE1ldGFJY29uQnV0dG9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xuICAkdG9vbGJhckxheW91dFZhcmlhbnQ/OiAnc3RhY2tlZFJvd3MnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWF4LWhlaWdodDogMTcwcHg7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIGdyaWQtcm93OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRCdXR0b24gPSBzdHlsZWQoQ2xlYXJCdXR0b24pPHsgaGFzVmFsdWVzPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNWYWx1ZXMgfSkgPT4gKGhhc1ZhbHVlcyA/IGAke0JMVUVfSUFfQ09MT1JTWzUwMF19YCA6ICcjZjJmMmYyJyl9O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgIGhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzcwMF19ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuXG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgICFoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgc3ZnIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXgtd2lkdGg6IDExOHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnRGaWxlSWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gIH1cblxuICAke1NDTUlBdHRhY2htZW50fTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuYnV0dG9uYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBsaW5lLWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICB9XG5cbiAgJHtTQ01JQXR0YWNobWVudH06aG92ZXIgJiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxuXG4gICY6aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVRvb2xzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNUb2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJG1lbnVPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7KHsgJG1lbnVPcGVuIH0pID0+ICgkbWVudU9wZW4gPyAnI2YyZjJmMicgOiBjb2xvcnMud2hpdGUubWFpbil9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXMtdmlzaWJsZTpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YyZjJmMjtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTa2lsbHNUb2dnbGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLndoaXRlLm1haW59O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY29yLWNvbG9yLWljb24tc3VidGxlLCAjODA4MDgwKTtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzLXZpc2libGU6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVQYXBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB3aWR0aDogMjA5cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLmNvbG9ycy5ncmF5LmxpZ2h0fTtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMud2hpdGUubWFpbn07XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUlubmVyQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVEaXZpZGVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDE3MHB4O1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SXRlbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjb2xvcnMuYmFja2dyb3VuZC5zZWNvbmRhcnl9O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBjb2xvcjogJHtNQUlBX0NIQVRfSU5QVVRfVUkubWVudUljb259O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBSb290ID0gc3R5bGVkLmRpdjx7ICRob3ZlcmVkOiBib29sZWFuOyAkZXhpdGluZzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxNDRweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMTZweCcgOiAnMCcpfTtcbiAgYmFja2dyb3VuZDogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyBNQUlBX0NIQVRfSU5QVVRfVUkuY2hpcFN1cmZhY2VIb3ZlciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgYm94LXNoYWRvdzogJHsoeyAkaG92ZXJlZCB9KSA9PiAoJGhvdmVyZWQgPyAnMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNyknIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjIycyBlYXNlLFxuICAgIGJvcmRlci1yYWRpdXMgMC4yMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMjJzIGVhc2U7XG5cbiAgJHsoeyAkZXhpdGluZyB9KSA9PlxuICAgICRleGl0aW5nICYmXG4gICAgY3NzYFxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBhbmltYXRpb246ICR7YWN0aXZlVG9vbENoaXBPdXR9IDAuMjJzIGVhc2UgZm9yd2FyZHM7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkY2xvc2VTaG93bjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICR7KHsgJGNsb3NlU2hvd24gfSkgPT5cbiAgICAkY2xvc2VTaG93biAmJlxuICAgIGNzc2BcbiAgICAgIHN2ZyB7XG4gICAgICAgIGFuaW1hdGlvbjogJHthY3RpdmVUb29sQ2hpcENsb3NlSWNvbklufSAwLjI0cyBlYXNlIGZvcndhcmRzO1xuICAgICAgfVxuICAgIGB9XG5cbiAgLyogU2NhbGUgc29sbyBjb24gbGEgY3J1eiB2aXNpYmxlIHkgaG92ZXIgc29icmUgZWxsYSAobm8gc29icmUgZWwgY2hpcC9pY29ubyBkZSB0b29sKSAqL1xuICAmOmhvdmVyIHtcbiAgICAkeyh7ICRjbG9zZVNob3duIH0pID0+XG4gICAgICAkY2xvc2VTaG93biAmJlxuICAgICAgY3NzYFxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICAgICAgYH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7QkxVRV9JQV9DT0xPUlNbNTAwXX07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5gXG5jb25zdCBzdG9wUHVsc2UgPSBrZXlmcmFtZXNgXG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOGM4YztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBhbmltYXRpb246ICR7c3RvcFB1bHNlfSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwXX0gIWltcG9ydGFudDtcblxuICAgICR7U3R5bGVkTUFJQVN0b3BJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0JMVUVfSUFfQ09MT1JTWzUwMF19ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxt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