@projectcor/maia-components 2.38.2 → 2.38.4

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 (167) hide show
  1. package/lib/components/atoms/ActionableButton.js +6 -1
  2. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +14 -4
  3. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +12 -3
  4. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +20 -4
  5. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +18 -7
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +29 -14
  7. package/lib/components/atoms/MAIAInput/styles.js +36 -29
  8. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +3 -3
  9. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +2 -2
  10. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +16 -5
  11. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +23 -2
  12. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +33 -5
  13. package/lib/components/molecules/ChatAIHome/styles.js +11 -2
  14. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +31 -20
  15. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -2
  16. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +8 -1
  18. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +15 -9
  19. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +18 -3
  20. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  21. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +13 -2
  22. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +14 -5
  23. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  24. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +12 -2
  25. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  26. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +34 -10
  27. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +14 -6
  28. package/lib/components/molecules/ChatFooter/ChatFooter.js +66 -45
  29. package/lib/components/molecules/ChatFooter/styles.js +12 -6
  30. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +15 -5
  31. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  32. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +30 -0
  33. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +47 -0
  34. package/lib/components/molecules/UsageBlockedBanner/index.js +2 -0
  35. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +30 -11
  36. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +31 -18
  37. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +40 -19
  38. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +2 -2
  39. package/lib/components/organisms/ChatAI/ChatAI.js +6 -1
  40. package/lib/constants/formatExtensions.js +8 -7
  41. package/lib/hooks/useChatManager/useChatManager.js +55 -34
  42. package/lib/lang/__mocks__/index.js +9 -0
  43. package/lib/lang/br/index.js +6 -2
  44. package/lib/lang/en/index.js +6 -2
  45. package/lib/lang/es/index.js +6 -2
  46. package/lib/lang/fr/index.js +7 -3
  47. package/lib/services/maia/Usage/getUsage.js +45 -0
  48. package/lib/services/maia/Usage/index.js +6 -0
  49. package/lib/services/maia/index.js +4 -2
  50. package/lib/services/utils/MaiaApiError.js +34 -0
  51. package/lib/services/utils/fetchCOR.js +106 -57
  52. package/lib/services/utils/index.js +2 -1
  53. package/lib/store/index.js +2 -1
  54. package/lib/store/sessions/sessionStreamManager.js +70 -35
  55. package/lib/store/sessions/sessions.types.js +1 -1
  56. package/lib/store/useUsageStore.js +115 -0
  57. package/lib/types/usage.js +16 -0
  58. package/lib/utils/usageBlockedMessage.js +11 -0
  59. package/package.json +1 -1
  60. package/CHANGELOG.md +0 -784
  61. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
  62. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  63. package/lib/components/atoms/Chip/Chip.spec.js +0 -32
  64. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  65. package/lib/components/atoms/Fade/Fade.spec.js +0 -31
  66. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  67. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -300
  68. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -68
  69. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  70. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
  71. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  72. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -77
  73. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -246
  74. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  75. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -291
  76. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  77. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
  78. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -105
  79. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  80. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  81. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -208
  82. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -335
  83. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -315
  84. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  85. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  86. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  87. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  88. package/lib/constants/permissions/utils.spec.js +0 -34
  89. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -95
  90. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -96
  91. package/lib/hooks/useCaretPosition.spec.js +0 -58
  92. package/lib/hooks/useDebounce.spec.js +0 -42
  93. package/lib/hooks/useEvent.spec.js +0 -40
  94. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
  95. package/lib/hooks/useModal/useModal.spec.js +0 -73
  96. package/lib/hooks/useResize.spec.js +0 -37
  97. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  98. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  99. package/lib/hooks/useT.spec.js +0 -20
  100. package/lib/hooks/useToggle.spec.js +0 -33
  101. package/lib/lib/utils.js +0 -9
  102. package/lib/services/maia/Access/updateAccess.spec.js +0 -108
  103. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -69
  104. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -74
  105. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  106. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -42
  107. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  108. package/lib/services/maia/Agents/getAgentById.spec.js +0 -55
  109. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -82
  110. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  111. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -47
  112. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  113. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  114. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  115. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  116. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  117. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  118. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  119. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  120. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  121. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  122. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  123. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -72
  124. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  125. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -83
  126. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  127. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  128. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  129. package/lib/services/maia/Skills/createSkill.spec.js +0 -68
  130. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  131. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  132. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
  133. package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
  134. package/lib/services/maia/client.spec.js +0 -56
  135. package/lib/services/utils/fetchCOR.spec.js +0 -211
  136. package/lib/services/utils/getCookie.spec.js +0 -20
  137. package/lib/store/chatsSidebarOptimistic.spec.js +0 -120
  138. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  139. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  140. package/lib/store/sessions/sessions.types.spec.js +0 -16
  141. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  142. package/lib/store/useChatsStore.spec.js +0 -619
  143. package/lib/store/useFaqsStore.spec.js +0 -57
  144. package/lib/utils/agentDisplayName.spec.js +0 -44
  145. package/lib/utils/autoApproveStorage.spec.js +0 -25
  146. package/lib/utils/chatInputFiles.spec.js +0 -39
  147. package/lib/utils/contextMentionLabel.spec.js +0 -13
  148. package/lib/utils/contextMentionTriggers.spec.js +0 -38
  149. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  150. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  151. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  152. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  153. package/lib/utils/formatUnreadCount.spec.js +0 -12
  154. package/lib/utils/getUnitFileSize.spec.js +0 -18
  155. package/lib/utils/hitlAnalytics.spec.js +0 -100
  156. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
  157. package/lib/utils/mapBackendLang.spec.js +0 -19
  158. package/lib/utils/normalizeAgentConnectors.spec.js +0 -89
  159. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  160. package/lib/utils/reasoningMappers.spec.js +0 -103
  161. package/lib/utils/retryCompletion.spec.js +0 -99
  162. package/lib/utils/skillContentSize.spec.js +0 -13
  163. package/lib/utils/slashCommandMarker.spec.js +0 -43
  164. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  165. package/lib/utils/sseStreamContent.spec.js +0 -31
  166. package/lib/utils/streamActivityMessages.spec.js +0 -98
  167. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -22,7 +22,10 @@ import { Loader } from '../../atoms/Loader';
22
22
  import { SkillCreatedByIcon } from '../../atoms/icons/SkillCreatedByIcon';
23
23
  import { SkillVisibilityEveryoneIcon } from '../../atoms/icons/SkillVisibilityEveryoneIcon';
24
24
  import { SkillVisibilityOnlyMeIcon } from '../../atoms/icons/SkillVisibilityOnlyMeIcon';
25
- import { SCMSBody, SCMSCardButton, SCMSCardContentText, SCMSCardMenu, SCMSCardMenuItem, SCMSCardTitleName, SCMSCardTopRow, SCMSCardVisibilityRow, SCMSCardVisibilityText, SCMSCardsList, SCMSContainer, SCMSCreateButton, SCMSCreateButtonText, SCMSSharedEmptyStateRoot, SCMSSharedEmptyStateSubtitle, SCMSSharedEmptyStateTitle, SCMSSharedEmptyStateTitleBlock, SCMSKebabButton, SCMSLoadWrapper, SCMSMetaDescription, SCMSMetaRow, SCMSPanel, SCMSPanelHeader, SCMSListScrollArea, SCMSSearchInput, SCMSSearchWrapper, SCMSTabBar, SCMSTabButton, SCMSTabInfoIcon, SCMSTitle, SCMSTitleBlock } from './ChatAIMySkills.styles';
25
+ import { useUsageStore } from '../../../store/useUsageStore';
26
+ import { getUsageBlockedBannerText } from '../../../utils/usageBlockedMessage';
27
+ import { UsageBlockedBanner } from '../UsageBlockedBanner/UsageBlockedBanner';
28
+ import { SCMSBody, SCMSCardButton, SCMSCardContentText, SCMSCardMenu, SCMSCardMenuItem, SCMSCardTitleName, SCMSCardTopRow, SCMSCardVisibilityRow, SCMSCardVisibilityText, SCMSCardsList, SCMSContainer, SCMSCreateButton, SCMSCreateButtonText, SCMSSharedEmptyStateRoot, SCMSSharedEmptyStateSubtitle, SCMSSharedEmptyStateTitle, SCMSSharedEmptyStateTitleBlock, SCMSKebabButton, SCMSLoadWrapper, SCMSMetaDescription, SCMSMetaRow, SCMSPanel, SCMSPanelHeader, SCMSListScrollArea, SCMSSearchInput, SCMSSearchWrapper, SCMSTabBar, SCMSTabButton, SCMSTabInfoIcon, SCMSTitle, SCMSTitleBlock, SCMSBlockedBannerWrap } from './ChatAIMySkills.styles';
26
29
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
27
30
  var DROPDOWN_GAP_PX = 6;
28
31
  var CARD_MENU_ITEM_HEIGHT_PX = 40;
@@ -96,6 +99,12 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
96
99
  var _useSnackBarManager = useSnackBarManager(),
97
100
  handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
98
101
  handleSnackbarError = _useSnackBarManager.handleSnackbarError;
102
+ var usageBlocked = useUsageStore(function (state) {
103
+ return state.blocked;
104
+ });
105
+ var usageNearLimit = useUsageStore(function (state) {
106
+ return state.nearLimit;
107
+ });
99
108
  var tooltipZIndex = useMaiaTaskPanelZIndex(1500, 'overlay');
100
109
  var listScrollRef = useRef(null);
101
110
  var _useState3 = useState('mine'),
@@ -119,6 +128,11 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
119
128
  skillToDelete = _useState10[0],
120
129
  setSkillToDelete = _useState10[1];
121
130
  var isMineTab = activeTab === 'mine';
131
+ var showUsageBlockedError = useCallback(function () {
132
+ if (!usageBlocked) return false;
133
+ handleSnackbarError(getUsageBlockedBannerText());
134
+ return true;
135
+ }, [usageBlocked, handleSnackbarError]);
122
136
  var tabSkills = isMineTab ? mySkills : sharedSkills;
123
137
  var filteredSkills = useMemo(function () {
124
138
  var normalizedQuery = searchQuery.toLowerCase();
@@ -130,14 +144,13 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
130
144
  });
131
145
  }, [searchQuery, tabSkills]);
132
146
  var handleCreateSkill = useCallback(function () {
147
+ if (showUsageBlockedError()) return;
133
148
  var fromEmpty = activeTab === 'mine' && !loading && mySkills.length === 0 && !searchQuery;
134
149
  openSkillModal({
135
150
  isEditing: false,
136
151
  intent: 'write'
137
152
  }, fromEmpty ? 'empty' : 'catalog');
138
- }, [activeTab, loading, mySkills.length, searchQuery]);
139
-
140
- // "Mis skills" tiene Usar + Editar + Eliminar; "Compartidas" solo Usar.
153
+ }, [activeTab, loading, mySkills.length, searchQuery, showUsageBlockedError]);
141
154
  var cardMenuHeightPx = isMineTab ? CARD_MENU_ITEM_HEIGHT_PX * 3 : CARD_MENU_ITEM_HEIGHT_PX;
142
155
  var handleToggleCardMenu = useCallback(function (event, skillId) {
143
156
  event.preventDefault();
@@ -150,9 +163,8 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
150
163
  return prev === skillId ? null : skillId;
151
164
  });
152
165
  }, [cardMenuHeightPx]);
153
-
154
- /** Mismo flujo que el botón "Usar skill" del modal: chat nuevo con el primer agente y la mención puesta. */
155
166
  var handleUseSkill = useCallback(function (skill) {
167
+ if (showUsageBlockedError()) return;
156
168
  eventAmplitude(EVENTS.aiChatSkillUse, {
157
169
  skill_id: skill.id,
158
170
  access_type: skill.access_type || 'only_me',
@@ -166,8 +178,9 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
166
178
  }
167
179
  }));
168
180
  setMenuOpenForSkillId(null);
169
- }, [eventAmplitude, isMineTab]);
181
+ }, [eventAmplitude, isMineTab, showUsageBlockedError]);
170
182
  var handleOpenSkill = useCallback(function (skill, isReadOnly) {
183
+ if (!isReadOnly && showUsageBlockedError()) return;
171
184
  openSkillModal({
172
185
  isEditing: true,
173
186
  isReadOnly: isReadOnly,
@@ -184,7 +197,7 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
184
197
  }
185
198
  });
186
199
  setMenuOpenForSkillId(null);
187
- }, [isMineTab]);
200
+ }, [isMineTab, showUsageBlockedError]);
188
201
  var deleteModalChat = useMemo(function () {
189
202
  return skillToDelete ? {
190
203
  title: skillToDelete.name,
@@ -261,6 +274,8 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
261
274
  var renderCreateSkillButton = function renderCreateSkillButton() {
262
275
  return /*#__PURE__*/_jsx(SCMSCreateButton, {
263
276
  type: "button",
277
+ disabled: usageBlocked,
278
+ "aria-disabled": usageBlocked,
264
279
  onClick: handleCreateSkill,
265
280
  children: /*#__PURE__*/_jsx(SCMSCreateButtonText, {
266
281
  children: t('mySkills.createSkill')
@@ -407,6 +422,8 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
407
422
  },
408
423
  children: [/*#__PURE__*/_jsx(SCMSCardMenuItem, {
409
424
  type: "button",
425
+ disabled: usageBlocked,
426
+ "aria-disabled": usageBlocked,
410
427
  onClick: function onClick() {
411
428
  return handleUseSkill(skill);
412
429
  },
@@ -414,6 +431,8 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
414
431
  }), isMineTab ? /*#__PURE__*/_jsxs(_Fragment, {
415
432
  children: [/*#__PURE__*/_jsx(SCMSCardMenuItem, {
416
433
  type: "button",
434
+ disabled: usageBlocked,
435
+ "aria-disabled": usageBlocked,
417
436
  onClick: function onClick() {
418
437
  return handleOpenSkill(skill, false);
419
438
  },
@@ -433,7 +452,12 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
433
452
  }) : null, !loading && !filteredSkills.length ? renderEmptyState() : null]
434
453
  })]
435
454
  })]
436
- }), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
455
+ }), usageBlocked || usageNearLimit ? /*#__PURE__*/_jsx(SCMSBlockedBannerWrap, {
456
+ children: /*#__PURE__*/_jsx(UsageBlockedBanner, {
457
+ attachedToComposer: false,
458
+ variant: usageBlocked ? 'blocked' : 'warning'
459
+ })
460
+ }) : null, deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
437
461
  onClose: function onClose() {
438
462
  return setSkillToDelete(null);
439
463
  },
@@ -445,4 +469,4 @@ export var ChatAIMySkills = function ChatAIMySkills(_ref2) {
445
469
  }) : null]
446
470
  });
447
471
  };
448
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTZWFyY2giLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsImRlbGV0ZVNraWxsIiwidXNlU25hY2tCYXJNYW5hZ2VyIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIlNLSUxMX1VTRV9BRlRFUl9TQVZFX0VWRU5UIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJTa2lsbENyZWF0ZWRCeUljb24iLCJTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24iLCJTa2lsbFZpc2liaWxpdHlPbmx5TWVJY29uIiwiU0NNU0JvZHkiLCJTQ01TQ2FyZEJ1dHRvbiIsIlNDTVNDYXJkQ29udGVudFRleHQiLCJTQ01TQ2FyZE1lbnUiLCJTQ01TQ2FyZE1lbnVJdGVtIiwiU0NNU0NhcmRUaXRsZU5hbWUiLCJTQ01TQ2FyZFRvcFJvdyIsIlNDTVNDYXJkVmlzaWJpbGl0eVJvdyIsIlNDTVNDYXJkVmlzaWJpbGl0eVRleHQiLCJTQ01TQ2FyZHNMaXN0IiwiU0NNU0NvbnRhaW5lciIsIlNDTVNDcmVhdGVCdXR0b24iLCJTQ01TQ3JlYXRlQnV0dG9uVGV4dCIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdCIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlIiwiU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNU0tlYmFiQnV0dG9uIiwiU0NNU0xvYWRXcmFwcGVyIiwiU0NNU01ldGFEZXNjcmlwdGlvbiIsIlNDTVNNZXRhUm93IiwiU0NNU1BhbmVsIiwiU0NNU1BhbmVsSGVhZGVyIiwiU0NNU0xpc3RTY3JvbGxBcmVhIiwiU0NNU1NlYXJjaElucHV0IiwiU0NNU1NlYXJjaFdyYXBwZXIiLCJTQ01TVGFiQmFyIiwiU0NNU1RhYkJ1dHRvbiIsIlNDTVNUYWJJbmZvSWNvbiIsIlNDTVNUaXRsZSIsIlNDTVNUaXRsZUJsb2NrIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiRFJPUERPV05fR0FQX1BYIiwiQ0FSRF9NRU5VX0lURU1fSEVJR0hUX1BYIiwicmVzb2x2ZURyb3Bkb3duUGxhY2VtZW50IiwiYW5jaG9yIiwiZHJvcGRvd25IZWlnaHQiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwic3BhY2VCZWxvdyIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwiYm90dG9tIiwic3BhY2VBYm92ZSIsInRvcCIsImZvcm1hdFNraWxsRGlzcGxheU5hbWUiLCJuYW1lIiwibm9ybWFsaXplZCIsInJlcGxhY2UiLCJjb25jYXQiLCJvcGVuU2tpbGxNb2RhbCIsInZhbHVlcyIsImFuYWx5dGljc1NvdXJjZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwic2tpbGxWYWx1ZXMiLCJpc09wZW4iLCJTa2lsbFNlYXJjaElucHV0IiwibWVtbyIsIl9yZWYiLCJvblNlYXJjaCIsInBsYWNlaG9sZGVyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidmFsdWUiLCJzZXRWYWx1ZSIsImRlYm91bmNlUmVmIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJuZXh0VmFsdWUiLCJ0YXJnZXQiLCJjdXJyZW50IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsInRyaW0iLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ0eXBlIiwib25DaGFuZ2UiLCJDaGF0QUlNeVNraWxscyIsIl9yZWYyIiwibXlTa2lsbHMiLCJzaGFyZWRTa2lsbHMiLCJfcmVmMiRsb2FkaW5nIiwibG9hZGluZyIsIm9uRGVsZXRlU2tpbGwiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsInRvb2x0aXBaSW5kZXgiLCJsaXN0U2Nyb2xsUmVmIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNlYXJjaFF1ZXJ5Iiwic2V0U2VhcmNoUXVlcnkiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsIm1lbnVPcGVuRm9yU2tpbGxJZCIsInNldE1lbnVPcGVuRm9yU2tpbGxJZCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiY2FyZE1lbnVQbGFjZW1lbnQiLCJzZXRDYXJkTWVudVBsYWNlbWVudCIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNraWxsVG9EZWxldGUiLCJzZXRTa2lsbFRvRGVsZXRlIiwiaXNNaW5lVGFiIiwidGFiU2tpbGxzIiwiZmlsdGVyZWRTa2lsbHMiLCJub3JtYWxpemVkUXVlcnkiLCJ0b0xvd2VyQ2FzZSIsIm1hdGNoZWQiLCJmaWx0ZXIiLCJza2lsbCIsImluY2x1ZGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsImhhbmRsZUNyZWF0ZVNraWxsIiwiZnJvbUVtcHR5IiwiaXNFZGl0aW5nIiwiaW50ZW50IiwiY2FyZE1lbnVIZWlnaHRQeCIsImhhbmRsZVRvZ2dsZUNhcmRNZW51Iiwic2tpbGxJZCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2FyZEFuY2hvciIsImN1cnJlbnRUYXJnZXQiLCJjbG9zZXN0IiwiSFRNTEVsZW1lbnQiLCJwcmV2IiwiaGFuZGxlVXNlU2tpbGwiLCJhaUNoYXRTa2lsbFVzZSIsInNraWxsX2lkIiwiaWQiLCJhY2Nlc3NfdHlwZSIsInNvdXJjZSIsImlzX3NoYXJlZCIsInVzZUZpcnN0QWdlbnQiLCJoYW5kbGVPcGVuU2tpbGwiLCJpc1JlYWRPbmx5IiwiaXNTaGFyZWQiLCJnZW5lcmFsIiwiZGVzY3JpcHRpb24iLCJjb250ZW50IiwiY3JlYXRlZF9ieV9uYW1lIiwiY3JlYXRlZF9hdCIsInVwZGF0ZWRfYXQiLCJkZWxldGVNb2RhbENoYXQiLCJ0aXRsZSIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiY2hhdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwibmV4dCIsImFpQ2hhdFNraWxsQWJtRGVsZXRlIiwic3RvcCIsIl94IiwiYXBwbHkiLCJoYW5kbGVDbGlja091dHNpZGUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVJlcG9zaXRpb24iLCJfbGlzdFNjcm9sbFJlZiRjdXJyZW4iLCJvcGVuQ2FyZCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxDb250YWluZXIiLCJwYXNzaXZlIiwidGFiRGVzY3JpcHRpb24iLCJpc01pbmVFbXB0eSIsInNob3dTa2lsbHNUb29sYmFyIiwicmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24iLCJvbkNsaWNrIiwicmVuZGVyU2VhcmNoRW1wdHlTdGF0ZSIsInJlbmRlckVtcHR5U3RhdGUiLCIkYWN0aXZlIiwiX29iamVjdFNwcmVhZCIsInpJbmRleCIsInJlZiIsInNpemUiLCJtYXAiLCJpbmRleCIsIiRpbmRleCIsIiRlbGV2YXRlZCIsIiR2aXNpYmxlIiwiJHBsYWNlbWVudCIsIiRkZXN0cnVjdGl2ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlTa2lsbHMvQ2hhdEFJTXlTa2lsbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvU2VhcmNoJ1xuaW1wb3J0IHsgSW5mb3JtYXRpb25DaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9JbmZvcm1hdGlvbkNpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFNraWxsIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvc2tpbGwnXG5pbXBvcnQgeyBkZWxldGVTa2lsbCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvU2tpbGxzL2RlbGV0ZVNraWxsJ1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBTS0lMTF9VU0VfQUZURVJfU0FWRV9FVkVOVCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9BYm1Ta2lsbE1vZGFsL0FibVNraWxsTW9kYWwnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBTa2lsbENyZWF0ZWRCeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9Ta2lsbENyZWF0ZWRCeUljb24nXG5pbXBvcnQgeyBTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9Ta2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24nXG5pbXBvcnQgeyBTa2lsbFZpc2liaWxpdHlPbmx5TWVJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvU2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbidcbmltcG9ydCB7XG4gIFNDTVNCb2R5LFxuICBTQ01TQ2FyZEJ1dHRvbixcbiAgU0NNU0NhcmRDb250ZW50VGV4dCxcbiAgU0NNU0NhcmRNZW51LFxuICBTQ01TQ2FyZE1lbnVJdGVtLFxuICBTQ01TQ2FyZFRpdGxlTmFtZSxcbiAgU0NNU0NhcmRUb3BSb3csXG4gIFNDTVNDYXJkVmlzaWJpbGl0eVJvdyxcbiAgU0NNU0NhcmRWaXNpYmlsaXR5VGV4dCxcbiAgU0NNU0NhcmRzTGlzdCxcbiAgU0NNU0NvbnRhaW5lcixcbiAgU0NNU0NyZWF0ZUJ1dHRvbixcbiAgU0NNU0NyZWF0ZUJ1dHRvblRleHQsXG4gIFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdCxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01TS2ViYWJCdXR0b24sXG4gIFNDTVNMb2FkV3JhcHBlcixcbiAgU0NNU01ldGFEZXNjcmlwdGlvbixcbiAgU0NNU01ldGFSb3csXG4gIFNDTVNQYW5lbCxcbiAgU0NNU1BhbmVsSGVhZGVyLFxuICBTQ01TTGlzdFNjcm9sbEFyZWEsXG4gIFNDTVNTZWFyY2hJbnB1dCxcbiAgU0NNU1NlYXJjaFdyYXBwZXIsXG4gIFNDTVNUYWJCYXIsXG4gIFNDTVNUYWJCdXR0b24sXG4gIFNDTVNUYWJJbmZvSWNvbixcbiAgU0NNU1RpdGxlLFxuICBTQ01TVGl0bGVCbG9jayxcbn0gZnJvbSAnLi9DaGF0QUlNeVNraWxscy5zdHlsZXMnXG5cbnR5cGUgQ2hhdEFJTXlTa2lsbHNQcm9wcyA9IHtcbiAgbXlTa2lsbHM6IFNraWxsW11cbiAgc2hhcmVkU2tpbGxzOiBTa2lsbFtdXG4gIGxvYWRpbmc/OiBib29sZWFuXG4gIG9uRGVsZXRlU2tpbGw/OiAoc2tpbGxJZDogc3RyaW5nKSA9PiB2b2lkXG59XG5cbnR5cGUgU2tpbGxzVGFiID0gJ21pbmUnIHwgJ3NoYXJlZCdcblxudHlwZSBTa2lsbE1vZGFsSW50ZW50ID0gJ2dlbmVyYXRlJyB8ICd3cml0ZSdcblxudHlwZSBEcm9wZG93blBsYWNlbWVudCA9ICd0b3AnIHwgJ2JvdHRvbSdcblxuY29uc3QgRFJPUERPV05fR0FQX1BYID0gNlxuY29uc3QgQ0FSRF9NRU5VX0lURU1fSEVJR0hUX1BYID0gNDBcblxuY29uc3QgcmVzb2x2ZURyb3Bkb3duUGxhY2VtZW50ID0gKGFuY2hvcjogSFRNTEVsZW1lbnQsIGRyb3Bkb3duSGVpZ2h0OiBudW1iZXIpOiBEcm9wZG93blBsYWNlbWVudCA9PiB7XG4gIGNvbnN0IHJlY3QgPSBhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tIC0gRFJPUERPV05fR0FQX1BYXG4gIGNvbnN0IHNwYWNlQWJvdmUgPSByZWN0LnRvcCAtIERST1BET1dOX0dBUF9QWFxuXG4gIGlmIChzcGFjZUJlbG93ID49IGRyb3Bkb3duSGVpZ2h0KSByZXR1cm4gJ2JvdHRvbSdcbiAgaWYgKHNwYWNlQWJvdmUgPj0gZHJvcGRvd25IZWlnaHQpIHJldHVybiAndG9wJ1xuICByZXR1cm4gc3BhY2VCZWxvdyA+PSBzcGFjZUFib3ZlID8gJ2JvdHRvbScgOiAndG9wJ1xufVxuXG5jb25zdCBmb3JtYXRTa2lsbERpc3BsYXlOYW1lID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbmFtZS5yZXBsYWNlKC9eKEBcXC98IykvLCAnJylcbiAgcmV0dXJuIGAjJHtub3JtYWxpemVkfWBcbn1cblxuY29uc3Qgb3BlblNraWxsTW9kYWwgPSAoXG4gIHZhbHVlczoge1xuICAgIGlzRWRpdGluZzogYm9vbGVhblxuICAgIGlzUmVhZE9ubHk/OiBib29sZWFuXG4gICAgaXNTaGFyZWQ/OiBib29sZWFuXG4gICAgaW50ZW50PzogU2tpbGxNb2RhbEludGVudFxuICAgIGdlbmVyYWw/OiB7XG4gICAgICBpZD86IHN0cmluZ1xuICAgICAgbmFtZT86IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIGNvbnRlbnQ/OiBzdHJpbmdcbiAgICAgIGFjY2Vzc190eXBlPzogU2tpbGxbJ2FjY2Vzc190eXBlJ11cbiAgICAgIGNyZWF0ZWRfYnlfbmFtZT86IHN0cmluZ1xuICAgICAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICAgICAgdXBkYXRlZF9hdD86IHN0cmluZ1xuICAgIH1cbiAgfSxcbiAgYW5hbHl0aWNzU291cmNlOiAnY2F0YWxvZycgfCAnZW1wdHknID0gJ2NhdGFsb2cnXG4pID0+IHtcbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1za2lsbC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIHNraWxsVmFsdWVzOiB7XG4gICAgICAgICAgdmFsdWVzLFxuICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYW5hbHl0aWNzU291cmNlLFxuICAgICAgfSxcbiAgICB9KVxuICApXG59XG5cbmNvbnN0IFNraWxsU2VhcmNoSW5wdXQgPSBSZWFjdC5tZW1vKFxuICAoeyBvblNlYXJjaCwgcGxhY2Vob2xkZXIgfTogeyBvblNlYXJjaDogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7IHBsYWNlaG9sZGVyOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpXG4gICAgY29uc3QgZGVib3VuY2VSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgICBzZXRWYWx1ZShuZXh0VmFsdWUpXG4gICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KSBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudClcbiAgICAgICAgZGVib3VuY2VSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIG9uU2VhcmNoKG5leHRWYWx1ZS50cmltKCkpXG4gICAgICAgIH0sIDI1MClcbiAgICAgIH0sXG4gICAgICBbb25TZWFyY2hdXG4gICAgKVxuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgKCkgPT4gKCkgPT4ge1xuICAgICAgICBpZiAoZGVib3VuY2VSZWYuY3VycmVudCkgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpXG4gICAgICB9LFxuICAgICAgW11cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVNTZWFyY2hXcmFwcGVyPlxuICAgICAgICA8U2VhcmNoIHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gY29sb3I9XCIjOTk5XCIgLz5cbiAgICAgICAgPFNDTVNTZWFyY2hJbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX0gcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfSAvPlxuICAgICAgPC9TQ01TU2VhcmNoV3JhcHBlcj5cbiAgICApXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IENoYXRBSU15U2tpbGxzID0gKHsgbXlTa2lsbHMsIHNoYXJlZFNraWxscywgbG9hZGluZyA9IGZhbHNlLCBvbkRlbGV0ZVNraWxsIH06IENoYXRBSU15U2tpbGxzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJTdWNjZXNzLCBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuICBjb25zdCB0b29sdGlwWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IGxpc3RTY3JvbGxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFthY3RpdmVUYWIsIHNldEFjdGl2ZVRhYl0gPSB1c2VTdGF0ZTxTa2lsbHNUYWI+KCdtaW5lJylcbiAgY29uc3QgW3NlYXJjaFF1ZXJ5LCBzZXRTZWFyY2hRdWVyeV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW21lbnVPcGVuRm9yU2tpbGxJZCwgc2V0TWVudU9wZW5Gb3JTa2lsbElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtjYXJkTWVudVBsYWNlbWVudCwgc2V0Q2FyZE1lbnVQbGFjZW1lbnRdID0gdXNlU3RhdGU8RHJvcGRvd25QbGFjZW1lbnQ+KCdib3R0b20nKVxuICBjb25zdCBbc2tpbGxUb0RlbGV0ZSwgc2V0U2tpbGxUb0RlbGV0ZV0gPSB1c2VTdGF0ZTxTa2lsbCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGlzTWluZVRhYiA9IGFjdGl2ZVRhYiA9PT0gJ21pbmUnXG5cbiAgY29uc3QgdGFiU2tpbGxzID0gaXNNaW5lVGFiID8gbXlTa2lsbHMgOiBzaGFyZWRTa2lsbHNcblxuICBjb25zdCBmaWx0ZXJlZFNraWxscyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IHNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBtYXRjaGVkID0gbm9ybWFsaXplZFF1ZXJ5XG4gICAgICA/IHRhYlNraWxscy5maWx0ZXIoc2tpbGwgPT4gc2tpbGwubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5vcm1hbGl6ZWRRdWVyeSkpXG4gICAgICA6IHRhYlNraWxsc1xuICAgIHJldHVybiBbLi4ubWF0Y2hlZF0uc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgfSwgW3NlYXJjaFF1ZXJ5LCB0YWJTa2lsbHNdKVxuXG4gIGNvbnN0IGhhbmRsZUNyZWF0ZVNraWxsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZyb21FbXB0eSA9IGFjdGl2ZVRhYiA9PT0gJ21pbmUnICYmICFsb2FkaW5nICYmIG15U2tpbGxzLmxlbmd0aCA9PT0gMCAmJiAhc2VhcmNoUXVlcnlcbiAgICBvcGVuU2tpbGxNb2RhbCh7IGlzRWRpdGluZzogZmFsc2UsIGludGVudDogJ3dyaXRlJyB9LCBmcm9tRW1wdHkgPyAnZW1wdHknIDogJ2NhdGFsb2cnKVxuICB9LCBbYWN0aXZlVGFiLCBsb2FkaW5nLCBteVNraWxscy5sZW5ndGgsIHNlYXJjaFF1ZXJ5XSlcblxuICAvLyBcIk1pcyBza2lsbHNcIiB0aWVuZSBVc2FyICsgRWRpdGFyICsgRWxpbWluYXI7IFwiQ29tcGFydGlkYXNcIiBzb2xvIFVzYXIuXG4gIGNvbnN0IGNhcmRNZW51SGVpZ2h0UHggPSBpc01pbmVUYWIgPyBDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFggKiAzIDogQ0FSRF9NRU5VX0lURU1fSEVJR0hUX1BYXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlQ2FyZE1lbnUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+LCBza2lsbElkOiBzdHJpbmcpID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBjb25zdCBjYXJkQW5jaG9yID0gZXZlbnQuY3VycmVudFRhcmdldC5jbG9zZXN0KCdbZGF0YS1za2lsbC1jYXJkLWlkXScpXG4gICAgICBpZiAoY2FyZEFuY2hvciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHNldENhcmRNZW51UGxhY2VtZW50KHJlc29sdmVEcm9wZG93blBsYWNlbWVudChjYXJkQW5jaG9yLCBjYXJkTWVudUhlaWdodFB4KSlcbiAgICAgIH1cbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChwcmV2ID0+IChwcmV2ID09PSBza2lsbElkID8gbnVsbCA6IHNraWxsSWQpKVxuICAgIH0sXG4gICAgW2NhcmRNZW51SGVpZ2h0UHhdXG4gIClcblxuICAvKiogTWlzbW8gZmx1am8gcXVlIGVsIGJvdMOzbiBcIlVzYXIgc2tpbGxcIiBkZWwgbW9kYWw6IGNoYXQgbnVldm8gY29uIGVsIHByaW1lciBhZ2VudGUgeSBsYSBtZW5jacOzbiBwdWVzdGEuICovXG4gIGNvbnN0IGhhbmRsZVVzZVNraWxsID0gdXNlQ2FsbGJhY2soXG4gICAgKHNraWxsOiBTa2lsbCkgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNraWxsVXNlLCB7XG4gICAgICAgIHNraWxsX2lkOiBza2lsbC5pZCxcbiAgICAgICAgYWNjZXNzX3R5cGU6IHNraWxsLmFjY2Vzc190eXBlIHx8ICdvbmx5X21lJyxcbiAgICAgICAgc291cmNlOiAnY2FyZCcsXG4gICAgICAgIGlzX3NoYXJlZDogIWlzTWluZVRhYixcbiAgICAgIH0pXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoU0tJTExfVVNFX0FGVEVSX1NBVkVfRVZFTlQsIHtcbiAgICAgICAgICBkZXRhaWw6IHsgc2tpbGwsIHVzZUZpcnN0QWdlbnQ6IHRydWUgfSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgIH0sXG4gICAgW2V2ZW50QW1wbGl0dWRlLCBpc01pbmVUYWJdXG4gIClcblxuICBjb25zdCBoYW5kbGVPcGVuU2tpbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoc2tpbGw6IFNraWxsLCBpc1JlYWRPbmx5OiBib29sZWFuKSA9PiB7XG4gICAgICBvcGVuU2tpbGxNb2RhbCh7XG4gICAgICAgIGlzRWRpdGluZzogdHJ1ZSxcbiAgICAgICAgaXNSZWFkT25seSxcbiAgICAgICAgaXNTaGFyZWQ6ICFpc01pbmVUYWIsXG4gICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICBpZDogc2tpbGwuaWQsXG4gICAgICAgICAgbmFtZTogc2tpbGwubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29udGVudDogc2tpbGwuY29udGVudCxcbiAgICAgICAgICBhY2Nlc3NfdHlwZTogc2tpbGwuYWNjZXNzX3R5cGUsXG4gICAgICAgICAgY3JlYXRlZF9ieV9uYW1lOiBza2lsbC5jcmVhdGVkX2J5X25hbWUsXG4gICAgICAgICAgY3JlYXRlZF9hdDogc2tpbGwuY3JlYXRlZF9hdCxcbiAgICAgICAgICB1cGRhdGVkX2F0OiBza2lsbC51cGRhdGVkX2F0LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgIH0sXG4gICAgW2lzTWluZVRhYl1cbiAgKVxuXG4gIGNvbnN0IGRlbGV0ZU1vZGFsQ2hhdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHNraWxsVG9EZWxldGUgPyB7IHRpdGxlOiBza2lsbFRvRGVsZXRlLm5hbWUsIGlkOiBza2lsbFRvRGVsZXRlLmlkIH0gOiBudWxsKSxcbiAgICBbc2tpbGxUb0RlbGV0ZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlU2tpbGwoY2hhdC5pZClcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTa2lsbEFibURlbGV0ZSwgeyBza2lsbF9pZDogY2hhdC5pZCwgc291cmNlOiAnY2F0YWxvZycgfSlcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdteVNraWxscy5kZWxldGVTdWNjZXNzJykpXG4gICAgICBvbkRlbGV0ZVNraWxsPy4oY2hhdC5pZClcbiAgICAgIHNldFNraWxsVG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ215U2tpbGxzLmRlbGV0ZUVycm9yJykpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JTa2lsbElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtZW51T3BlbkZvclNraWxsSWQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGhhbmRsZVJlcG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBvcGVuQ2FyZCA9IGxpc3RTY3JvbGxSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcjxIVE1MQnV0dG9uRWxlbWVudD4oXG4gICAgICAgIGBbZGF0YS1za2lsbC1jYXJkLWlkPVwiJHttZW51T3BlbkZvclNraWxsSWR9XCJdYFxuICAgICAgKVxuICAgICAgaWYgKG9wZW5DYXJkKSB7XG4gICAgICAgIHNldENhcmRNZW51UGxhY2VtZW50KHJlc29sdmVEcm9wZG93blBsYWNlbWVudChvcGVuQ2FyZCwgY2FyZE1lbnVIZWlnaHRQeCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gbGlzdFNjcm9sbFJlZi5jdXJyZW50XG4gICAgc2Nyb2xsQ29udGFpbmVyPy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzY3JvbGxDb250YWluZXI/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVJlcG9zaXRpb24pXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWQsIGNhcmRNZW51SGVpZ2h0UHhdKVxuXG4gIGNvbnN0IHRhYkRlc2NyaXB0aW9uID0gaXNNaW5lVGFiID8gdCgnbXlTa2lsbHMubXlTa2lsbHNEZXNjcmlwdGlvbicpIDogdCgnbXlTa2lsbHMuc2hhcmVkU2tpbGxzRGVzY3JpcHRpb24nKVxuXG4gIGNvbnN0IGlzTWluZUVtcHR5ID0gaXNNaW5lVGFiICYmICFsb2FkaW5nICYmIG15U2tpbGxzLmxlbmd0aCA9PT0gMCAmJiAhc2VhcmNoUXVlcnlcbiAgY29uc3Qgc2hvd1NraWxsc1Rvb2xiYXIgPSBpc01pbmVUYWIgPyAhaXNNaW5lRW1wdHkgOiB0YWJTa2lsbHMubGVuZ3RoID4gMCB8fCAhIXNlYXJjaFF1ZXJ5XG5cbiAgY29uc3QgcmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24gPSAoKSA9PiAoXG4gICAgPFNDTVNDcmVhdGVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUNyZWF0ZVNraWxsfT5cbiAgICAgIDxTQ01TQ3JlYXRlQnV0dG9uVGV4dD57dCgnbXlTa2lsbHMuY3JlYXRlU2tpbGwnKX08L1NDTVNDcmVhdGVCdXR0b25UZXh0PlxuICAgIDwvU0NNU0NyZWF0ZUJ1dHRvbj5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclNlYXJjaEVtcHR5U3RhdGUgPSAoKSA9PiAoXG4gICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlckVtcHR5U3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01pbmVUYWIpIHtcbiAgICAgIGlmIChzZWFyY2hRdWVyeSkge1xuICAgICAgICByZXR1cm4gcmVuZGVyU2VhcmNoRW1wdHlTdGF0ZSgpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zaGFyZWRFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZT57dCgnbXlTa2lsbHMuc2hhcmVkRW1wdHlTdGF0ZURlc2NyaXB0aW9uJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiByZW5kZXJTZWFyY2hFbXB0eVN0YXRlKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZT57dCgnbXlTa2lsbHMuZW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5lbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICB7cmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24oKX1cbiAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVSb290PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVNDb250YWluZXI+XG4gICAgICA8U0NNU0JvZHk+XG4gICAgICAgIDxTQ01TVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1RpdGxlPnt0KCdteVNraWxscy50aXRsZScpfTwvU0NNU1RpdGxlPlxuICAgICAgICA8L1NDTVNUaXRsZUJsb2NrPlxuXG4gICAgICAgIDxTQ01TUGFuZWw+XG4gICAgICAgICAgPFNDTVNQYW5lbEhlYWRlcj5cbiAgICAgICAgICAgIDxTQ01TVGFiQmFyPlxuICAgICAgICAgICAgICA8U0NNU1RhYkJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgJGFjdGl2ZT17aXNNaW5lVGFifSBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoJ21pbmUnKX0+XG4gICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnRhYk15U2tpbGxzJyl9XG4gICAgICAgICAgICAgIDwvU0NNU1RhYkJ1dHRvbj5cbiAgICAgICAgICAgICAgPFNDTVNUYWJCdXR0b24gdHlwZT1cImJ1dHRvblwiICRhY3RpdmU9eyFpc01pbmVUYWJ9IG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignc2hhcmVkJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy50YWJTaGFyZWRTa2lsbHMnKX1cbiAgICAgICAgICAgICAgPC9TQ01TVGFiQnV0dG9uPlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnbXlTa2lsbHMuaW5mb1Rvb2x0aXAnKX0gey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfT5cbiAgICAgICAgICAgICAgICA8U0NNU1RhYkluZm9JY29uIGFyaWEtbGFiZWw9e3QoJ215U2tpbGxzLmluZm9Ub29sdGlwJyl9PlxuICAgICAgICAgICAgICAgICAgPEluZm9ybWF0aW9uQ2lyY2xlIGNvbG9yPVwiIzgwODA4MFwiIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICA8L1NDTVNUYWJJbmZvSWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ01TVGFiQmFyPlxuXG4gICAgICAgICAgICB7c2hvd1NraWxsc1Rvb2xiYXIgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNDTVNNZXRhUm93PlxuICAgICAgICAgICAgICAgICAgPFNDTVNNZXRhRGVzY3JpcHRpb24+e3RhYkRlc2NyaXB0aW9ufTwvU0NNU01ldGFEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHtpc01pbmVUYWIgPyByZW5kZXJDcmVhdGVTa2lsbEJ1dHRvbigpIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDTVNNZXRhUm93PlxuXG4gICAgICAgICAgICAgICAgPFNraWxsU2VhcmNoSW5wdXQgb25TZWFyY2g9e3NldFNlYXJjaFF1ZXJ5fSBwbGFjZWhvbGRlcj17dCgnbXlTa2lsbHMuc2VhcmNoUGxhY2Vob2xkZXInKX0gLz5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTVNQYW5lbEhlYWRlcj5cblxuICAgICAgICAgIDxTQ01TTGlzdFNjcm9sbEFyZWEgcmVmPXtsaXN0U2Nyb2xsUmVmfT5cbiAgICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgICA8U0NNU0xvYWRXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgPC9TQ01TTG9hZFdyYXBwZXI+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAgeyFsb2FkaW5nICYmIGZpbHRlcmVkU2tpbGxzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPFNDTVNDYXJkc0xpc3Q+XG4gICAgICAgICAgICAgICAge2ZpbHRlcmVkU2tpbGxzLm1hcCgoc2tpbGwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NNU0NhcmRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2tpbGwtY2FyZC1pZD17c2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICRlbGV2YXRlZD17bWVudU9wZW5Gb3JTa2lsbElkID09PSBza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlT3BlblNraWxsKHNraWxsLCB0cnVlKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFRpdGxlTmFtZT57Zm9ybWF0U2tpbGxEaXNwbGF5TmFtZShza2lsbC5uYW1lKX08L1NDTVNDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHZpc2libGU9e21lbnVPcGVuRm9yU2tpbGxJZCA9PT0gc2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteVNraWxscy5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlQ2FyZE1lbnUoZXZlbnQsIHNraWxsLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjODA4MDgwXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0tlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRDb250ZW50VGV4dD57c2tpbGwuZGVzY3JpcHRpb24gfHwgc2tpbGwuY29udGVudH08L1NDTVNDYXJkQ29udGVudFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgICAge2lzTWluZVRhYiA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtza2lsbC5hY2Nlc3NfdHlwZSA9PT0gJ2NvbXBhbnknID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2tpbGwuYWNjZXNzX3R5cGUgPT09ICdjb21wYW55J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0KCdteVNraWxscy52aXNpYmlsaXR5RXZlcnlvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdteVNraWxscy52aXNpYmlsaXR5T25seU1lJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNNaW5lVGFiICYmIHNraWxsLmNyZWF0ZWRfYnlfbmFtZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbENyZWF0ZWRCeUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkVmlzaWJpbGl0eVRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnNoYXJlZENyZWF0ZWRCeScsIHsgbmFtZTogc2tpbGwuY3JlYXRlZF9ieV9uYW1lIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkVmlzaWJpbGl0eVRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvclNraWxsSWQgPT09IHNraWxsLmlkID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICRwbGFjZW1lbnQ9e2NhcmRNZW51UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVVc2VTa2lsbChza2lsbCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnbXlTa2lsbHMudXNlU2tpbGwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc01pbmVUYWIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkTWVudUl0ZW0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZU9wZW5Ta2lsbChza2lsbCwgZmFsc2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy5lZGl0Jyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtIHR5cGU9XCJidXR0b25cIiAkZGVzdHJ1Y3RpdmUgb25DbGljaz17KCkgPT4gc2V0U2tpbGxUb0RlbGV0ZShza2lsbCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLmRlbGV0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkQnV0dG9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L1NDTVNDYXJkc0xpc3Q+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAgeyFsb2FkaW5nICYmICFmaWx0ZXJlZFNraWxscy5sZW5ndGggPyByZW5kZXJFbXB0eVN0YXRlKCkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNU0xpc3RTY3JvbGxBcmVhPlxuICAgICAgICA8L1NDTVNQYW5lbD5cbiAgICAgIDwvU0NNU0JvZHk+XG5cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2tpbGxUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBhY3Rpb249XCJza2lsbFwiXG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTVNDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNoRixTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsaUJBQWlCLFFBQVEsb0RBQW9EO0FBQ3RGLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFFOUMsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLHNCQUFzQixRQUFRLHVDQUF1QztBQUM5RSxTQUFTQyxtQkFBbUIsUUFBUSx5REFBeUQ7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
472
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTZWFyY2giLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsImRlbGV0ZVNraWxsIiwidXNlU25hY2tCYXJNYW5hZ2VyIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIlNLSUxMX1VTRV9BRlRFUl9TQVZFX0VWRU5UIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJTa2lsbENyZWF0ZWRCeUljb24iLCJTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24iLCJTa2lsbFZpc2liaWxpdHlPbmx5TWVJY29uIiwidXNlVXNhZ2VTdG9yZSIsImdldFVzYWdlQmxvY2tlZEJhbm5lclRleHQiLCJVc2FnZUJsb2NrZWRCYW5uZXIiLCJTQ01TQm9keSIsIlNDTVNDYXJkQnV0dG9uIiwiU0NNU0NhcmRDb250ZW50VGV4dCIsIlNDTVNDYXJkTWVudSIsIlNDTVNDYXJkTWVudUl0ZW0iLCJTQ01TQ2FyZFRpdGxlTmFtZSIsIlNDTVNDYXJkVG9wUm93IiwiU0NNU0NhcmRWaXNpYmlsaXR5Um93IiwiU0NNU0NhcmRWaXNpYmlsaXR5VGV4dCIsIlNDTVNDYXJkc0xpc3QiLCJTQ01TQ29udGFpbmVyIiwiU0NNU0NyZWF0ZUJ1dHRvbiIsIlNDTVNDcmVhdGVCdXR0b25UZXh0IiwiU0NNU1NoYXJlZEVtcHR5U3RhdGVSb290IiwiU0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZSIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGUiLCJTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01TS2ViYWJCdXR0b24iLCJTQ01TTG9hZFdyYXBwZXIiLCJTQ01TTWV0YURlc2NyaXB0aW9uIiwiU0NNU01ldGFSb3ciLCJTQ01TUGFuZWwiLCJTQ01TUGFuZWxIZWFkZXIiLCJTQ01TTGlzdFNjcm9sbEFyZWEiLCJTQ01TU2VhcmNoSW5wdXQiLCJTQ01TU2VhcmNoV3JhcHBlciIsIlNDTVNUYWJCYXIiLCJTQ01TVGFiQnV0dG9uIiwiU0NNU1RhYkluZm9JY29uIiwiU0NNU1RpdGxlIiwiU0NNU1RpdGxlQmxvY2siLCJTQ01TQmxvY2tlZEJhbm5lcldyYXAiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJEUk9QRE9XTl9HQVBfUFgiLCJDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFgiLCJyZXNvbHZlRHJvcGRvd25QbGFjZW1lbnQiLCJhbmNob3IiLCJkcm9wZG93bkhlaWdodCIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzcGFjZUJlbG93Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJib3R0b20iLCJzcGFjZUFib3ZlIiwidG9wIiwiZm9ybWF0U2tpbGxEaXNwbGF5TmFtZSIsIm5hbWUiLCJub3JtYWxpemVkIiwicmVwbGFjZSIsImNvbmNhdCIsIm9wZW5Ta2lsbE1vZGFsIiwidmFsdWVzIiwiYW5hbHl0aWNzU291cmNlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJza2lsbFZhbHVlcyIsImlzT3BlbiIsIlNraWxsU2VhcmNoSW5wdXQiLCJtZW1vIiwiX3JlZiIsIm9uU2VhcmNoIiwicGxhY2Vob2xkZXIiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ2YWx1ZSIsInNldFZhbHVlIiwiZGVib3VuY2VSZWYiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsIm5leHRWYWx1ZSIsInRhcmdldCIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidHJpbSIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInR5cGUiLCJvbkNoYW5nZSIsIkNoYXRBSU15U2tpbGxzIiwiX3JlZjIiLCJteVNraWxscyIsInNoYXJlZFNraWxscyIsIl9yZWYyJGxvYWRpbmciLCJsb2FkaW5nIiwib25EZWxldGVTa2lsbCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhclN1Y2Nlc3MiLCJoYW5kbGVTbmFja2JhckVycm9yIiwidXNhZ2VCbG9ja2VkIiwic3RhdGUiLCJibG9ja2VkIiwidXNhZ2VOZWFyTGltaXQiLCJuZWFyTGltaXQiLCJ0b29sdGlwWkluZGV4IiwibGlzdFNjcm9sbFJlZiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZWFyY2hRdWVyeSIsInNldFNlYXJjaFF1ZXJ5IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJtZW51T3BlbkZvclNraWxsSWQiLCJzZXRNZW51T3BlbkZvclNraWxsSWQiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImNhcmRNZW51UGxhY2VtZW50Iiwic2V0Q2FyZE1lbnVQbGFjZW1lbnQiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJza2lsbFRvRGVsZXRlIiwic2V0U2tpbGxUb0RlbGV0ZSIsImlzTWluZVRhYiIsInNob3dVc2FnZUJsb2NrZWRFcnJvciIsInRhYlNraWxscyIsImZpbHRlcmVkU2tpbGxzIiwibm9ybWFsaXplZFF1ZXJ5IiwidG9Mb3dlckNhc2UiLCJtYXRjaGVkIiwiZmlsdGVyIiwic2tpbGwiLCJpbmNsdWRlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsInNvcnQiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJoYW5kbGVDcmVhdGVTa2lsbCIsImZyb21FbXB0eSIsImlzRWRpdGluZyIsImludGVudCIsImNhcmRNZW51SGVpZ2h0UHgiLCJoYW5kbGVUb2dnbGVDYXJkTWVudSIsInNraWxsSWQiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImNhcmRBbmNob3IiLCJjdXJyZW50VGFyZ2V0IiwiY2xvc2VzdCIsIkhUTUxFbGVtZW50IiwicHJldiIsImhhbmRsZVVzZVNraWxsIiwiYWlDaGF0U2tpbGxVc2UiLCJza2lsbF9pZCIsImlkIiwiYWNjZXNzX3R5cGUiLCJzb3VyY2UiLCJpc19zaGFyZWQiLCJ1c2VGaXJzdEFnZW50IiwiaGFuZGxlT3BlblNraWxsIiwiaXNSZWFkT25seSIsImlzU2hhcmVkIiwiZ2VuZXJhbCIsImRlc2NyaXB0aW9uIiwiY29udGVudCIsImNyZWF0ZWRfYnlfbmFtZSIsImNyZWF0ZWRfYXQiLCJ1cGRhdGVkX2F0IiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImNoYXQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsIm5leHQiLCJhaUNoYXRTa2lsbEFibURlbGV0ZSIsInN0b3AiLCJfeCIsImFwcGx5IiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVSZXBvc2l0aW9uIiwiX2xpc3RTY3JvbGxSZWYkY3VycmVuIiwib3BlbkNhcmQiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsQ29udGFpbmVyIiwicGFzc2l2ZSIsInRhYkRlc2NyaXB0aW9uIiwiaXNNaW5lRW1wdHkiLCJzaG93U2tpbGxzVG9vbGJhciIsInJlbmRlckNyZWF0ZVNraWxsQnV0dG9uIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwicmVuZGVyU2VhcmNoRW1wdHlTdGF0ZSIsInJlbmRlckVtcHR5U3RhdGUiLCIkYWN0aXZlIiwiX29iamVjdFNwcmVhZCIsInpJbmRleCIsInJlZiIsInNpemUiLCJtYXAiLCJpbmRleCIsIiRpbmRleCIsIiRlbGV2YXRlZCIsIiR2aXNpYmxlIiwiJHBsYWNlbWVudCIsIiRkZXN0cnVjdGl2ZSIsImF0dGFjaGVkVG9Db21wb3NlciIsInZhcmlhbnQiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiYWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15U2tpbGxzL0NoYXRBSU15U2tpbGxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1NlYXJjaCdcbmltcG9ydCB7IEluZm9ybWF0aW9uQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSW5mb3JtYXRpb25DaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTa2lsbCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3NraWxsJ1xuaW1wb3J0IHsgZGVsZXRlU2tpbGwgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1NraWxscy9kZWxldGVTa2lsbCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0tJTExfVVNFX0FGVEVSX1NBVkVfRVZFTlQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvQWJtU2tpbGxNb2RhbC9BYm1Ta2lsbE1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgU2tpbGxDcmVhdGVkQnlJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvU2tpbGxDcmVhdGVkQnlJY29uJ1xuaW1wb3J0IHsgU2tpbGxWaXNpYmlsaXR5RXZlcnlvbmVJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvU2tpbGxWaXNpYmlsaXR5RXZlcnlvbmVJY29uJ1xuaW1wb3J0IHsgU2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1NraWxsVmlzaWJpbGl0eU9ubHlNZUljb24nXG5pbXBvcnQgeyB1c2VVc2FnZVN0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvdXNlVXNhZ2VTdG9yZSdcbmltcG9ydCB7IGdldFVzYWdlQmxvY2tlZEJhbm5lclRleHQgfSBmcm9tICcuLi8uLi8uLi91dGlscy91c2FnZUJsb2NrZWRNZXNzYWdlJ1xuaW1wb3J0IHsgVXNhZ2VCbG9ja2VkQmFubmVyIH0gZnJvbSAnLi4vVXNhZ2VCbG9ja2VkQmFubmVyL1VzYWdlQmxvY2tlZEJhbm5lcidcbmltcG9ydCB7XG4gIFNDTVNCb2R5LFxuICBTQ01TQ2FyZEJ1dHRvbixcbiAgU0NNU0NhcmRDb250ZW50VGV4dCxcbiAgU0NNU0NhcmRNZW51LFxuICBTQ01TQ2FyZE1lbnVJdGVtLFxuICBTQ01TQ2FyZFRpdGxlTmFtZSxcbiAgU0NNU0NhcmRUb3BSb3csXG4gIFNDTVNDYXJkVmlzaWJpbGl0eVJvdyxcbiAgU0NNU0NhcmRWaXNpYmlsaXR5VGV4dCxcbiAgU0NNU0NhcmRzTGlzdCxcbiAgU0NNU0NvbnRhaW5lcixcbiAgU0NNU0NyZWF0ZUJ1dHRvbixcbiAgU0NNU0NyZWF0ZUJ1dHRvblRleHQsXG4gIFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdCxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01TS2ViYWJCdXR0b24sXG4gIFNDTVNMb2FkV3JhcHBlcixcbiAgU0NNU01ldGFEZXNjcmlwdGlvbixcbiAgU0NNU01ldGFSb3csXG4gIFNDTVNQYW5lbCxcbiAgU0NNU1BhbmVsSGVhZGVyLFxuICBTQ01TTGlzdFNjcm9sbEFyZWEsXG4gIFNDTVNTZWFyY2hJbnB1dCxcbiAgU0NNU1NlYXJjaFdyYXBwZXIsXG4gIFNDTVNUYWJCYXIsXG4gIFNDTVNUYWJCdXR0b24sXG4gIFNDTVNUYWJJbmZvSWNvbixcbiAgU0NNU1RpdGxlLFxuICBTQ01TVGl0bGVCbG9jayxcbiAgU0NNU0Jsb2NrZWRCYW5uZXJXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15U2tpbGxzLnN0eWxlcydcblxudHlwZSBDaGF0QUlNeVNraWxsc1Byb3BzID0ge1xuICBteVNraWxsczogU2tpbGxbXVxuICBzaGFyZWRTa2lsbHM6IFNraWxsW11cbiAgbG9hZGluZz86IGJvb2xlYW5cbiAgb25EZWxldGVTa2lsbD86IChza2lsbElkOiBzdHJpbmcpID0+IHZvaWRcbn1cblxudHlwZSBTa2lsbHNUYWIgPSAnbWluZScgfCAnc2hhcmVkJ1xuXG50eXBlIFNraWxsTW9kYWxJbnRlbnQgPSAnZ2VuZXJhdGUnIHwgJ3dyaXRlJ1xuXG50eXBlIERyb3Bkb3duUGxhY2VtZW50ID0gJ3RvcCcgfCAnYm90dG9tJ1xuXG5jb25zdCBEUk9QRE9XTl9HQVBfUFggPSA2XG5jb25zdCBDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFggPSA0MFxuXG5jb25zdCByZXNvbHZlRHJvcGRvd25QbGFjZW1lbnQgPSAoYW5jaG9yOiBIVE1MRWxlbWVudCwgZHJvcGRvd25IZWlnaHQ6IG51bWJlcik6IERyb3Bkb3duUGxhY2VtZW50ID0+IHtcbiAgY29uc3QgcmVjdCA9IGFuY2hvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICBjb25zdCBzcGFjZUJlbG93ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5ib3R0b20gLSBEUk9QRE9XTl9HQVBfUFhcbiAgY29uc3Qgc3BhY2VBYm92ZSA9IHJlY3QudG9wIC0gRFJPUERPV05fR0FQX1BYXG5cbiAgaWYgKHNwYWNlQmVsb3cgPj0gZHJvcGRvd25IZWlnaHQpIHJldHVybiAnYm90dG9tJ1xuICBpZiAoc3BhY2VBYm92ZSA+PSBkcm9wZG93bkhlaWdodCkgcmV0dXJuICd0b3AnXG4gIHJldHVybiBzcGFjZUJlbG93ID49IHNwYWNlQWJvdmUgPyAnYm90dG9tJyA6ICd0b3AnXG59XG5cbmNvbnN0IGZvcm1hdFNraWxsRGlzcGxheU5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBuYW1lLnJlcGxhY2UoL14oQFxcL3wjKS8sICcnKVxuICByZXR1cm4gYCMke25vcm1hbGl6ZWR9YFxufVxuXG5jb25zdCBvcGVuU2tpbGxNb2RhbCA9IChcbiAgdmFsdWVzOiB7XG4gICAgaXNFZGl0aW5nOiBib29sZWFuXG4gICAgaXNSZWFkT25seT86IGJvb2xlYW5cbiAgICBpc1NoYXJlZD86IGJvb2xlYW5cbiAgICBpbnRlbnQ/OiBTa2lsbE1vZGFsSW50ZW50XG4gICAgZ2VuZXJhbD86IHtcbiAgICAgIGlkPzogc3RyaW5nXG4gICAgICBuYW1lPzogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgICAgY29udGVudD86IHN0cmluZ1xuICAgICAgYWNjZXNzX3R5cGU/OiBTa2lsbFsnYWNjZXNzX3R5cGUnXVxuICAgICAgY3JlYXRlZF9ieV9uYW1lPzogc3RyaW5nXG4gICAgICBjcmVhdGVkX2F0Pzogc3RyaW5nXG4gICAgICB1cGRhdGVkX2F0Pzogc3RyaW5nXG4gICAgfVxuICB9LFxuICBhbmFseXRpY3NTb3VyY2U6ICdjYXRhbG9nJyB8ICdlbXB0eScgPSAnY2F0YWxvZydcbikgPT4ge1xuICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLXNraWxsLW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgc2tpbGxWYWx1ZXM6IHtcbiAgICAgICAgICB2YWx1ZXMsXG4gICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhbmFseXRpY3NTb3VyY2UsXG4gICAgICB9LFxuICAgIH0pXG4gIClcbn1cblxuY29uc3QgU2tpbGxTZWFyY2hJbnB1dCA9IFJlYWN0Lm1lbW8oXG4gICh7IG9uU2VhcmNoLCBwbGFjZWhvbGRlciB9OiB7IG9uU2VhcmNoOiAocXVlcnk6IHN0cmluZykgPT4gdm9pZDsgcGxhY2Vob2xkZXI6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICAgIHNldFZhbHVlKG5leHRWYWx1ZSlcbiAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIGNsZWFyVGltZW91dChkZWJvdW5jZVJlZi5jdXJyZW50KVxuICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25TZWFyY2gobmV4dFZhbHVlLnRyaW0oKSlcbiAgICAgICAgfSwgMjUwKVxuICAgICAgfSxcbiAgICAgIFtvblNlYXJjaF1cbiAgICApXG5cbiAgICB1c2VFZmZlY3QoXG4gICAgICAoKSA9PiAoKSA9PiB7XG4gICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KSBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudClcbiAgICAgIH0sXG4gICAgICBbXVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNU1NlYXJjaFdyYXBwZXI+XG4gICAgICAgIDxTZWFyY2ggd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSBjb2xvcj1cIiM5OTlcIiAvPlxuICAgICAgICA8U0NNU1NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfSBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9IC8+XG4gICAgICA8L1NDTVNTZWFyY2hXcmFwcGVyPlxuICAgIClcbiAgfVxuKVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTXlTa2lsbHMgPSAoeyBteVNraWxscywgc2hhcmVkU2tpbGxzLCBsb2FkaW5nID0gZmFsc2UsIG9uRGVsZXRlU2tpbGwgfTogQ2hhdEFJTXlTa2lsbHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUldKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhclN1Y2Nlc3MsIGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IHVzYWdlQmxvY2tlZCA9IHVzZVVzYWdlU3RvcmUoc3RhdGUgPT4gc3RhdGUuYmxvY2tlZClcbiAgY29uc3QgdXNhZ2VOZWFyTGltaXQgPSB1c2VVc2FnZVN0b3JlKHN0YXRlID0+IHN0YXRlLm5lYXJMaW1pdClcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBsaXN0U2Nyb2xsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8U2tpbGxzVGFiPignbWluZScpXG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFttZW51T3BlbkZvclNraWxsSWQsIHNldE1lbnVPcGVuRm9yU2tpbGxJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbY2FyZE1lbnVQbGFjZW1lbnQsIHNldENhcmRNZW51UGxhY2VtZW50XSA9IHVzZVN0YXRlPERyb3Bkb3duUGxhY2VtZW50PignYm90dG9tJylcbiAgY29uc3QgW3NraWxsVG9EZWxldGUsIHNldFNraWxsVG9EZWxldGVdID0gdXNlU3RhdGU8U2tpbGwgfCBudWxsPihudWxsKVxuICBjb25zdCBpc01pbmVUYWIgPSBhY3RpdmVUYWIgPT09ICdtaW5lJ1xuXG4gIGNvbnN0IHNob3dVc2FnZUJsb2NrZWRFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXVzYWdlQmxvY2tlZCkgcmV0dXJuIGZhbHNlXG4gICAgaGFuZGxlU25hY2tiYXJFcnJvcihnZXRVc2FnZUJsb2NrZWRCYW5uZXJUZXh0KCkpXG4gICAgcmV0dXJuIHRydWVcbiAgfSwgW3VzYWdlQmxvY2tlZCwgaGFuZGxlU25hY2tiYXJFcnJvcl0pXG5cbiAgY29uc3QgdGFiU2tpbGxzID0gaXNNaW5lVGFiID8gbXlTa2lsbHMgOiBzaGFyZWRTa2lsbHNcblxuICBjb25zdCBmaWx0ZXJlZFNraWxscyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IHNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBtYXRjaGVkID0gbm9ybWFsaXplZFF1ZXJ5XG4gICAgICA/IHRhYlNraWxscy5maWx0ZXIoc2tpbGwgPT4gc2tpbGwubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5vcm1hbGl6ZWRRdWVyeSkpXG4gICAgICA6IHRhYlNraWxsc1xuICAgIHJldHVybiBbLi4ubWF0Y2hlZF0uc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgfSwgW3NlYXJjaFF1ZXJ5LCB0YWJTa2lsbHNdKVxuXG4gIGNvbnN0IGhhbmRsZUNyZWF0ZVNraWxsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzaG93VXNhZ2VCbG9ja2VkRXJyb3IoKSkgcmV0dXJuXG4gICAgY29uc3QgZnJvbUVtcHR5ID0gYWN0aXZlVGFiID09PSAnbWluZScgJiYgIWxvYWRpbmcgJiYgbXlTa2lsbHMubGVuZ3RoID09PSAwICYmICFzZWFyY2hRdWVyeVxuICAgIG9wZW5Ta2lsbE1vZGFsKHsgaXNFZGl0aW5nOiBmYWxzZSwgaW50ZW50OiAnd3JpdGUnIH0sIGZyb21FbXB0eSA/ICdlbXB0eScgOiAnY2F0YWxvZycpXG4gIH0sIFthY3RpdmVUYWIsIGxvYWRpbmcsIG15U2tpbGxzLmxlbmd0aCwgc2VhcmNoUXVlcnksIHNob3dVc2FnZUJsb2NrZWRFcnJvcl0pXG5cbiAgY29uc3QgY2FyZE1lbnVIZWlnaHRQeCA9IGlzTWluZVRhYiA/IENBUkRfTUVOVV9JVEVNX0hFSUdIVF9QWCAqIDMgOiBDQVJEX01FTlVfSVRFTV9IRUlHSFRfUFhcblxuICBjb25zdCBoYW5kbGVUb2dnbGVDYXJkTWVudSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4sIHNraWxsSWQ6IHN0cmluZykgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGNvbnN0IGNhcmRBbmNob3IgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXNraWxsLWNhcmQtaWRdJylcbiAgICAgIGlmIChjYXJkQW5jaG9yIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgc2V0Q2FyZE1lbnVQbGFjZW1lbnQocmVzb2x2ZURyb3Bkb3duUGxhY2VtZW50KGNhcmRBbmNob3IsIGNhcmRNZW51SGVpZ2h0UHgpKVxuICAgICAgfVxuICAgICAgc2V0TWVudU9wZW5Gb3JTa2lsbElkKHByZXYgPT4gKHByZXYgPT09IHNraWxsSWQgPyBudWxsIDogc2tpbGxJZCkpXG4gICAgfSxcbiAgICBbY2FyZE1lbnVIZWlnaHRQeF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVVzZVNraWxsID0gdXNlQ2FsbGJhY2soXG4gICAgKHNraWxsOiBTa2lsbCkgPT4ge1xuICAgICAgaWYgKHNob3dVc2FnZUJsb2NrZWRFcnJvcigpKSByZXR1cm5cbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTa2lsbFVzZSwge1xuICAgICAgICBza2lsbF9pZDogc2tpbGwuaWQsXG4gICAgICAgIGFjY2Vzc190eXBlOiBza2lsbC5hY2Nlc3NfdHlwZSB8fCAnb25seV9tZScsXG4gICAgICAgIHNvdXJjZTogJ2NhcmQnLFxuICAgICAgICBpc19zaGFyZWQ6ICFpc01pbmVUYWIsXG4gICAgICB9KVxuICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFNLSUxMX1VTRV9BRlRFUl9TQVZFX0VWRU5ULCB7XG4gICAgICAgICAgZGV0YWlsOiB7IHNraWxsLCB1c2VGaXJzdEFnZW50OiB0cnVlIH0sXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBzZXRNZW51T3BlbkZvclNraWxsSWQobnVsbClcbiAgICB9LFxuICAgIFtldmVudEFtcGxpdHVkZSwgaXNNaW5lVGFiLCBzaG93VXNhZ2VCbG9ja2VkRXJyb3JdXG4gIClcblxuICBjb25zdCBoYW5kbGVPcGVuU2tpbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoc2tpbGw6IFNraWxsLCBpc1JlYWRPbmx5OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoIWlzUmVhZE9ubHkgJiYgc2hvd1VzYWdlQmxvY2tlZEVycm9yKCkpIHJldHVyblxuICAgICAgb3BlblNraWxsTW9kYWwoe1xuICAgICAgICBpc0VkaXRpbmc6IHRydWUsXG4gICAgICAgIGlzUmVhZE9ubHksXG4gICAgICAgIGlzU2hhcmVkOiAhaXNNaW5lVGFiLFxuICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgaWQ6IHNraWxsLmlkLFxuICAgICAgICAgIG5hbWU6IHNraWxsLm5hbWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHNraWxsLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbnRlbnQ6IHNraWxsLmNvbnRlbnQsXG4gICAgICAgICAgYWNjZXNzX3R5cGU6IHNraWxsLmFjY2Vzc190eXBlLFxuICAgICAgICAgIGNyZWF0ZWRfYnlfbmFtZTogc2tpbGwuY3JlYXRlZF9ieV9uYW1lLFxuICAgICAgICAgIGNyZWF0ZWRfYXQ6IHNraWxsLmNyZWF0ZWRfYXQsXG4gICAgICAgICAgdXBkYXRlZF9hdDogc2tpbGwudXBkYXRlZF9hdCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRNZW51T3BlbkZvclNraWxsSWQobnVsbClcbiAgICB9LFxuICAgIFtpc01pbmVUYWIsIHNob3dVc2FnZUJsb2NrZWRFcnJvcl1cbiAgKVxuXG4gIGNvbnN0IGRlbGV0ZU1vZGFsQ2hhdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHNraWxsVG9EZWxldGUgPyB7IHRpdGxlOiBza2lsbFRvRGVsZXRlLm5hbWUsIGlkOiBza2lsbFRvRGVsZXRlLmlkIH0gOiBudWxsKSxcbiAgICBbc2tpbGxUb0RlbGV0ZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlU2tpbGwoY2hhdC5pZClcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTa2lsbEFibURlbGV0ZSwgeyBza2lsbF9pZDogY2hhdC5pZCwgc291cmNlOiAnY2F0YWxvZycgfSlcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdteVNraWxscy5kZWxldGVTdWNjZXNzJykpXG4gICAgICBvbkRlbGV0ZVNraWxsPy4oY2hhdC5pZClcbiAgICAgIHNldFNraWxsVG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ215U2tpbGxzLmRlbGV0ZUVycm9yJykpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JTa2lsbElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yU2tpbGxJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtZW51T3BlbkZvclNraWxsSWQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGhhbmRsZVJlcG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICBjb25zdCBvcGVuQ2FyZCA9IGxpc3RTY3JvbGxSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvcjxIVE1MQnV0dG9uRWxlbWVudD4oXG4gICAgICAgIGBbZGF0YS1za2lsbC1jYXJkLWlkPVwiJHttZW51T3BlbkZvclNraWxsSWR9XCJdYFxuICAgICAgKVxuICAgICAgaWYgKG9wZW5DYXJkKSB7XG4gICAgICAgIHNldENhcmRNZW51UGxhY2VtZW50KHJlc29sdmVEcm9wZG93blBsYWNlbWVudChvcGVuQ2FyZCwgY2FyZE1lbnVIZWlnaHRQeCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gbGlzdFNjcm9sbFJlZi5jdXJyZW50XG4gICAgc2Nyb2xsQ29udGFpbmVyPy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzY3JvbGxDb250YWluZXI/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVJlcG9zaXRpb24pXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvclNraWxsSWQsIGNhcmRNZW51SGVpZ2h0UHhdKVxuXG4gIGNvbnN0IHRhYkRlc2NyaXB0aW9uID0gaXNNaW5lVGFiID8gdCgnbXlTa2lsbHMubXlTa2lsbHNEZXNjcmlwdGlvbicpIDogdCgnbXlTa2lsbHMuc2hhcmVkU2tpbGxzRGVzY3JpcHRpb24nKVxuXG4gIGNvbnN0IGlzTWluZUVtcHR5ID0gaXNNaW5lVGFiICYmICFsb2FkaW5nICYmIG15U2tpbGxzLmxlbmd0aCA9PT0gMCAmJiAhc2VhcmNoUXVlcnlcbiAgY29uc3Qgc2hvd1NraWxsc1Rvb2xiYXIgPSBpc01pbmVUYWIgPyAhaXNNaW5lRW1wdHkgOiB0YWJTa2lsbHMubGVuZ3RoID4gMCB8fCAhIXNlYXJjaFF1ZXJ5XG5cbiAgY29uc3QgcmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24gPSAoKSA9PiAoXG4gICAgPFNDTVNDcmVhdGVCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgZGlzYWJsZWQ9e3VzYWdlQmxvY2tlZH1cbiAgICAgIGFyaWEtZGlzYWJsZWQ9e3VzYWdlQmxvY2tlZH1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNyZWF0ZVNraWxsfVxuICAgID5cbiAgICAgIDxTQ01TQ3JlYXRlQnV0dG9uVGV4dD57dCgnbXlTa2lsbHMuY3JlYXRlU2tpbGwnKX08L1NDTVNDcmVhdGVCdXR0b25UZXh0PlxuICAgIDwvU0NNU0NyZWF0ZUJ1dHRvbj5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclNlYXJjaEVtcHR5U3RhdGUgPSAoKSA9PiAoXG4gICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5zZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlckVtcHR5U3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01pbmVUYWIpIHtcbiAgICAgIGlmIChzZWFyY2hRdWVyeSkge1xuICAgICAgICByZXR1cm4gcmVuZGVyU2VhcmNoRW1wdHlTdGF0ZSgpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPnt0KCdteVNraWxscy5zaGFyZWRFbXB0eVN0YXRlVGl0bGUnKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVTdWJ0aXRsZT57dCgnbXlTa2lsbHMuc2hhcmVkRW1wdHlTdGF0ZURlc2NyaXB0aW9uJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICA8L1NDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiByZW5kZXJTZWFyY2hFbXB0eVN0YXRlKClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgPFNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZT57dCgnbXlTa2lsbHMuZW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01TU2hhcmVkRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgIDxTQ01TU2hhcmVkRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCdteVNraWxscy5lbXB0eVN0YXRlRGVzY3JpcHRpb24nKX08L1NDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICB7cmVuZGVyQ3JlYXRlU2tpbGxCdXR0b24oKX1cbiAgICAgIDwvU0NNU1NoYXJlZEVtcHR5U3RhdGVSb290PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVNDb250YWluZXI+XG4gICAgICA8U0NNU0JvZHk+XG4gICAgICAgIDxTQ01TVGl0bGVCbG9jaz5cbiAgICAgICAgICA8U0NNU1RpdGxlPnt0KCdteVNraWxscy50aXRsZScpfTwvU0NNU1RpdGxlPlxuICAgICAgICA8L1NDTVNUaXRsZUJsb2NrPlxuXG4gICAgICAgIDxTQ01TUGFuZWw+XG4gICAgICAgICAgPFNDTVNQYW5lbEhlYWRlcj5cbiAgICAgICAgICAgIDxTQ01TVGFiQmFyPlxuICAgICAgICAgICAgICA8U0NNU1RhYkJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgJGFjdGl2ZT17aXNNaW5lVGFifSBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoJ21pbmUnKX0+XG4gICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnRhYk15U2tpbGxzJyl9XG4gICAgICAgICAgICAgIDwvU0NNU1RhYkJ1dHRvbj5cbiAgICAgICAgICAgICAgPFNDTVNUYWJCdXR0b24gdHlwZT1cImJ1dHRvblwiICRhY3RpdmU9eyFpc01pbmVUYWJ9IG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZVRhYignc2hhcmVkJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy50YWJTaGFyZWRTa2lsbHMnKX1cbiAgICAgICAgICAgICAgPC9TQ01TVGFiQnV0dG9uPlxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnbXlTa2lsbHMuaW5mb1Rvb2x0aXAnKX0gey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfT5cbiAgICAgICAgICAgICAgICA8U0NNU1RhYkluZm9JY29uIGFyaWEtbGFiZWw9e3QoJ215U2tpbGxzLmluZm9Ub29sdGlwJyl9PlxuICAgICAgICAgICAgICAgICAgPEluZm9ybWF0aW9uQ2lyY2xlIGNvbG9yPVwiIzgwODA4MFwiIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICA8L1NDTVNUYWJJbmZvSWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ01TVGFiQmFyPlxuXG4gICAgICAgICAgICB7c2hvd1NraWxsc1Rvb2xiYXIgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNDTVNNZXRhUm93PlxuICAgICAgICAgICAgICAgICAgPFNDTVNNZXRhRGVzY3JpcHRpb24+e3RhYkRlc2NyaXB0aW9ufTwvU0NNU01ldGFEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHtpc01pbmVUYWIgPyByZW5kZXJDcmVhdGVTa2lsbEJ1dHRvbigpIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDTVNNZXRhUm93PlxuXG4gICAgICAgICAgICAgICAgPFNraWxsU2VhcmNoSW5wdXQgb25TZWFyY2g9e3NldFNlYXJjaFF1ZXJ5fSBwbGFjZWhvbGRlcj17dCgnbXlTa2lsbHMuc2VhcmNoUGxhY2Vob2xkZXInKX0gLz5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTVNQYW5lbEhlYWRlcj5cblxuICAgICAgICAgIDxTQ01TTGlzdFNjcm9sbEFyZWEgcmVmPXtsaXN0U2Nyb2xsUmVmfT5cbiAgICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgICA8U0NNU0xvYWRXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgPC9TQ01TTG9hZFdyYXBwZXI+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAgeyFsb2FkaW5nICYmIGZpbHRlcmVkU2tpbGxzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPFNDTVNDYXJkc0xpc3Q+XG4gICAgICAgICAgICAgICAge2ZpbHRlcmVkU2tpbGxzLm1hcCgoc2tpbGwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NNU0NhcmRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2tpbGwtY2FyZC1pZD17c2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICRlbGV2YXRlZD17bWVudU9wZW5Gb3JTa2lsbElkID09PSBza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlT3BlblNraWxsKHNraWxsLCB0cnVlKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFRpdGxlTmFtZT57Zm9ybWF0U2tpbGxEaXNwbGF5TmFtZShza2lsbC5uYW1lKX08L1NDTVNDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJHZpc2libGU9e21lbnVPcGVuRm9yU2tpbGxJZCA9PT0gc2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteVNraWxscy5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlQ2FyZE1lbnUoZXZlbnQsIHNraWxsLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjODA4MDgwXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0tlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRDb250ZW50VGV4dD57c2tpbGwuZGVzY3JpcHRpb24gfHwgc2tpbGwuY29udGVudH08L1NDTVNDYXJkQ29udGVudFRleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgICAge2lzTWluZVRhYiA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtza2lsbC5hY2Nlc3NfdHlwZSA9PT0gJ2NvbXBhbnknID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbFZpc2liaWxpdHlFdmVyeW9uZUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tpbGxWaXNpYmlsaXR5T25seU1lSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2tpbGwuYWNjZXNzX3R5cGUgPT09ICdjb21wYW55J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0KCdteVNraWxscy52aXNpYmlsaXR5RXZlcnlvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0KCdteVNraWxscy52aXNpYmlsaXR5T25seU1lJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRWaXNpYmlsaXR5VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNNaW5lVGFiICYmIHNraWxsLmNyZWF0ZWRfYnlfbmFtZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbENyZWF0ZWRCeUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTVNDYXJkVmlzaWJpbGl0eVRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnNoYXJlZENyZWF0ZWRCeScsIHsgbmFtZTogc2tpbGwuY3JlYXRlZF9ieV9uYW1lIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkVmlzaWJpbGl0eVRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZFZpc2liaWxpdHlSb3c+XG4gICAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvclNraWxsSWQgPT09IHNraWxsLmlkID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICRwbGFjZW1lbnQ9e2NhcmRNZW51UGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17dXNhZ2VCbG9ja2VkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPXt1c2FnZUJsb2NrZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZVNraWxsKHNraWxsKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ215U2tpbGxzLnVzZVNraWxsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aXNNaW5lVGFiID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01TQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXt1c2FnZUJsb2NrZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRpc2FibGVkPXt1c2FnZUJsb2NrZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVPcGVuU2tpbGwoc2tpbGwsIGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnbXlTa2lsbHMuZWRpdCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNU0NhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNU0NhcmRNZW51SXRlbSB0eXBlPVwiYnV0dG9uXCIgJGRlc3RydWN0aXZlIG9uQ2xpY2s9eygpID0+IHNldFNraWxsVG9EZWxldGUoc2tpbGwpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdteVNraWxscy5kZWxldGUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTVNDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZE1lbnU+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9TQ01TQ2FyZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9TQ01TQ2FyZHNMaXN0PlxuICAgICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICAgIHshbG9hZGluZyAmJiAhZmlsdGVyZWRTa2lsbHMubGVuZ3RoID8gcmVuZGVyRW1wdHlTdGF0ZSgpIDogbnVsbH1cbiAgICAgICAgICA8L1NDTVNMaXN0U2Nyb2xsQXJlYT5cbiAgICAgICAgPC9TQ01TUGFuZWw+XG4gICAgICA8L1NDTVNCb2R5PlxuICAgICAge3VzYWdlQmxvY2tlZCB8fCB1c2FnZU5lYXJMaW1pdCA/IChcbiAgICAgICAgPFNDTVNCbG9ja2VkQmFubmVyV3JhcD5cbiAgICAgICAgICA8VXNhZ2VCbG9ja2VkQmFubmVyIGF0dGFjaGVkVG9Db21wb3Nlcj17ZmFsc2V9IHZhcmlhbnQ9e3VzYWdlQmxvY2tlZCA/ICdibG9ja2VkJyA6ICd3YXJuaW5nJ30gLz5cbiAgICAgICAgPC9TQ01TQmxvY2tlZEJhbm5lcldyYXA+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2tpbGxUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBhY3Rpb249XCJza2lsbFwiXG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTVNDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNoRixTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsaUJBQWlCLFFBQVEsb0RBQW9EO0FBQ3RGLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFFOUMsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLHNCQUFzQixRQUFRLHVDQUF1QztBQUM5RSxTQUFTQyxtQkFBbUIsUUFBUSx5REFBeUQ7QUFDN0YsU0FBU0MsMEJBQTBCLFFBQVEsNkNBQTZDO0FBQ3hGLFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFDcEQsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxrQkFBa0IsUUFBUSxzQ0FBc0M7QUFDekUsU0FBU0MsMkJBQTJCLFFBQVEsK0NBQStDO0FBQzNGLFNBQVNDLHlCQUF5QixRQUFRLDZDQUE2QztBQUN2RixTQUFTQyxhQUFhLFFBQVEsOEJBQThCO0FBQzVELFNBQVNDLHlCQUF5QixRQUFRLG9DQUFvQztBQUM5RSxTQUFTQyxrQkFBa0IsUUFBUSwwQ0FBMEM7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
@@ -68,7 +68,7 @@ export var SCMSCreateMenuWrap = styled.div.withConfig({
68
68
  export var SCMSCreateButton = styled.button.withConfig({
69
69
  displayName: "ChatAIMySkillsstyles__SCMSCreateButton",
70
70
  componentId: "sc-1qxrs1g-13"
71
- })(["display:flex;min-width:74px;padding:8px 12px;justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid #08c;background:#fff;cursor:pointer;transition:background 160ms ease;&:hover{background:#f0f7fc;}"]);
71
+ })(["display:flex;min-width:74px;padding:8px 12px;justify-content:center;align-items:center;gap:4px;border-radius:8px;border:1px solid #08c;background:#fff;cursor:pointer;transition:background 160ms ease;&:hover:not(:disabled) span{background:var(--Gradiente-1,linear-gradient(0deg,#4d3569 0%,#2d77bd 100%));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}&:disabled{opacity:0.5;cursor:not-allowed;}"]);
72
72
  export var SCMSCreateButtonText = styled.span.withConfig({
73
73
  displayName: "ChatAIMySkillsstyles__SCMSCreateButtonText",
74
74
  componentId: "sc-1qxrs1g-14"
@@ -84,7 +84,7 @@ export var SCMSCreateMenu = styled.div.withConfig({
84
84
  export var SCMSCreateMenuItem = styled.button.withConfig({
85
85
  displayName: "ChatAIMySkillsstyles__SCMSCreateMenuItem",
86
86
  componentId: "sc-1qxrs1g-16"
87
- })(["display:flex;min-width:160px;width:100%;padding:10px 8px;flex-direction:column;justify-content:center;align-items:flex-start;border:none;background:transparent;cursor:pointer;text-align:left;color:#202020;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;&:hover{background:#f9f9f9;}"]);
87
+ })(["display:flex;min-width:160px;width:100%;padding:10px 8px;flex-direction:column;justify-content:center;align-items:flex-start;border:none;background:transparent;cursor:pointer;text-align:left;color:#202020;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;&:hover:not(:disabled){background:#f5f5f5;}&:disabled{opacity:0.5;cursor:not-allowed;}"]);
88
88
  export var SCMSSearchWrapper = styled.div.withConfig({
89
89
  displayName: "ChatAIMySkillsstyles__SCMSSearchWrapper",
90
90
  componentId: "sc-1qxrs1g-17"
@@ -145,7 +145,7 @@ export var SCMSCardMenu = styled.div.withConfig({
145
145
  export var SCMSCardMenuItem = styled.button.withConfig({
146
146
  displayName: "ChatAIMySkillsstyles__SCMSCardMenuItem",
147
147
  componentId: "sc-1qxrs1g-28"
148
- })(["display:flex;padding:10px 8px;align-items:center;border:none;background:transparent;color:", ";font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;cursor:pointer;width:100%;text-align:left;&:hover{background:#f9f9f9;}"], function (_ref0) {
148
+ })(["display:flex;padding:10px 8px;align-items:center;border:none;background:transparent;color:", ";font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;cursor:pointer;width:100%;text-align:left;&:hover:not(:disabled){background:#f9f9f9;}&:disabled{opacity:0.5;cursor:not-allowed;}"], function (_ref0) {
149
149
  var $destructive = _ref0.$destructive;
150
150
  return $destructive ? '#d92e2e' : '#202020';
151
151
  });
@@ -164,9 +164,17 @@ export var SCMSSharedEmptyStateTitle = styled.h3.withConfig({
164
164
  export var SCMSSharedEmptyStateSubtitle = styled.p.withConfig({
165
165
  displayName: "ChatAIMySkillsstyles__SCMSSharedEmptyStateSubtitle",
166
166
  componentId: "sc-1qxrs1g-32"
167
- })(["align-self:stretch;margin:0;color:#666;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;"]);
167
+ })(["align-self:stretch;margin:0;color:#666;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
168
+ export var SCMSEmptyStateButton = styled.button.withConfig({
169
+ displayName: "ChatAIMySkillsstyles__SCMSEmptyStateButton",
170
+ componentId: "sc-1qxrs1g-33"
171
+ })(["display:flex;min-width:80px;padding:10px 12px;justify-content:center;align-items:center;gap:8px;border-radius:4px;border:none;cursor:pointer;box-sizing:border-box;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);color:#fff;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:hover:not(:disabled){opacity:0.92;}&:disabled{opacity:0.5;cursor:not-allowed;}"]);
172
+ export var SCMSBlockedBannerWrap = styled.div.withConfig({
173
+ displayName: "ChatAIMySkillsstyles__SCMSBlockedBannerWrap",
174
+ componentId: "sc-1qxrs1g-34"
175
+ })(["width:100%;max-width:min(100%,", "px);padding:0 16px;box-sizing:border-box;"], SKILLS_CONTENT_MAX_WIDTH_PX);
168
176
  export var SCMSLoadWrapper = styled.div.withConfig({
169
177
  displayName: "ChatAIMySkillsstyles__SCMSLoadWrapper",
170
- componentId: "sc-1qxrs1g-33"
178
+ componentId: "sc-1qxrs1g-35"
171
179
  })(["display:flex;justify-content:center;align-items:center;width:100%;padding:24px 0;"]);
172
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjYXNjYWRlSXRlbSIsIlNLSUxMU19DT05URU5UX01BWF9XSURUSF9QWCIsIlNDTVNDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTVNCb2R5IiwiU0NNU1RpdGxlQmxvY2siLCJTQ01TVGl0bGUiLCJoMiIsIlNDTVNQYW5lbCIsIlNDTVNQYW5lbEhlYWRlciIsIlNDTVNMaXN0U2Nyb2xsQXJlYSIsIlNDTVNUYWJCYXIiLCJTQ01TVGFiSW5mb0ljb24iLCJzcGFuIiwiU0NNU1RhYkJ1dHRvbiIsImJ1dHRvbiIsIl9yZWYiLCIkYWN0aXZlIiwiX3JlZjIiLCJfcmVmMyIsIlNDTVNNZXRhUm93IiwiU0NNU01ldGFEZXNjcmlwdGlvbiIsIlNDTVNDcmVhdGVNZW51V3JhcCIsIl9yZWY0IiwiJGVsZXZhdGVkIiwiU0NNU0NyZWF0ZUJ1dHRvbiIsIlNDTVNDcmVhdGVCdXR0b25UZXh0IiwiU0NNU0NyZWF0ZU1lbnUiLCJfcmVmNSIsIl9yZWY1JCRwbGFjZW1lbnQiLCIkcGxhY2VtZW50IiwiU0NNU0NyZWF0ZU1lbnVJdGVtIiwiU0NNU1NlYXJjaFdyYXBwZXIiLCJTQ01TU2VhcmNoSW5wdXQiLCJpbnB1dCIsIlNDTVNDYXJkc0xpc3QiLCJTQ01TQ2FyZEJ1dHRvbiIsIl9yZWY2IiwiX3JlZjciLCIkaW5kZXgiLCJ1bmRlZmluZWQiLCJTQ01TQ2FyZFRvcFJvdyIsIlNDTVNDYXJkVGl0bGVOYW1lIiwiU0NNU0tlYmFiQnV0dG9uIiwiX3JlZjgiLCIkdmlzaWJsZSIsIlNDTVNDYXJkQ29udGVudFRleHQiLCJwIiwiU0NNU0NhcmRWaXNpYmlsaXR5Um93IiwiU0NNU0NhcmRWaXNpYmlsaXR5VGV4dCIsIlNDTVNDYXJkTWVudSIsIl9yZWY5IiwiX3JlZjkkJHBsYWNlbWVudCIsIlNDTVNDYXJkTWVudUl0ZW0iLCJfcmVmMCIsIiRkZXN0cnVjdGl2ZSIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdCIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGUiLCJoMyIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01TTG9hZFdyYXBwZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlTa2lsbHMvQ2hhdEFJTXlTa2lsbHMuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBjYXNjYWRlSXRlbSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jYXNjYWRlJ1xuXG5jb25zdCBTS0lMTFNfQ09OVEVOVF9NQVhfV0lEVEhfUFggPSA0NThcblxuZXhwb3J0IGNvbnN0IFNDTVNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2MHB4IDEzcHggMTJweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQm9keSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMjRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbWluKDEwMCUsICR7U0tJTExTX0NPTlRFTlRfTUFYX1dJRFRIX1BYfXB4KTtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1RpdGxlQmxvY2sgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1RpdGxlID0gc3R5bGVkLmgyYFxuICBtYXJnaW46IDA7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1BhbmVsID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNQYW5lbEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNMaXN0U2Nyb2xsQXJlYSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNUYWJCYXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1RhYkluZm9JY29uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZzogNHB4O1xuICBjdXJzb3I6IGhlbHA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TVGFiQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRhY3RpdmU/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyMwOGMnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyMwOGMnIDogJyM0ZDRkNGQnKX07XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gNTAwIDogNDAwKX07XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNNZXRhUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TTWV0YURlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDEgMCAwO1xuICAvKiBJZ3VhbGEgZWwgYWx0byBkZWwgYm90w7NuIGRlIGNyZWFyIHBhcmEgcXVlIGxhIGZpbGEgbm8gc2FsdGUgYWwgY2FtYmlhciBkZSB0YWIuICovXG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NyZWF0ZU1lbnVXcmFwID0gc3R5bGVkLmRpdjx7ICRlbGV2YXRlZD86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHotaW5kZXg6ICR7KHsgJGVsZXZhdGVkIH0pID0+ICgkZWxldmF0ZWQgPyAzMCA6ICdhdXRvJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NyZWF0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogNzRweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDhjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTYwbXMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmN2ZjO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ3JlYXRlQnV0dG9uVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4OiAxIDAgMDtcbiAgY29sb3I6ICMwOGM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDcmVhdGVNZW51ID0gc3R5bGVkLmRpdjx7ICRwbGFjZW1lbnQ/OiAndG9wJyB8ICdib3R0b20nIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTYzcHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDE4LCAxOCwgMTgsIDAuMjQpO1xuICB6LWluZGV4OiA1MDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHsoeyAkcGxhY2VtZW50ID0gJ2JvdHRvbScgfSkgPT5cbiAgICAkcGxhY2VtZW50ID09PSAnYm90dG9tJ1xuICAgICAgPyBgXG4gICAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIGJvdHRvbTogYXV0bztcbiAgYFxuICAgICAgOiBgXG4gICAgYm90dG9tOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIHRvcDogYXV0bztcbiAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDcmVhdGVNZW51SXRlbSA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMjAyMDIwO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNTZWFyY2hXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogIzgwODA4MDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNU1NlYXJjaElucHV0ID0gc3R5bGVkLmlucHV0YFxuICBmbGV4OiAxIDAgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZEJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkaW5kZXg/OiBudW1iZXI7ICRlbGV2YXRlZD86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6ICR7KHsgJGVsZXZhdGVkIH0pID0+ICgkZWxldmF0ZWQgPyAzMCA6ICdhdXRvJyl9O1xuICAkeyh7ICRpbmRleCB9KSA9PiAoJGluZGV4ICE9PSB1bmRlZmluZWQgPyBjYXNjYWRlSXRlbSgkaW5kZXgpIDogJycpfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NhcmRUaXRsZU5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZmxleDogMSAwIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0tlYmFiQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICR2aXNpYmxlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogJHsoeyAkdmlzaWJsZSB9KSA9PiAoJHZpc2libGUgPyAxIDogMCl9O1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMTYwbXMgZWFzZSxcbiAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2U7XG5cbiAgJHtTQ01TQ2FyZEJ1dHRvbn06aG92ZXIgJixcbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkQ29udGVudFRleHQgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZFZpc2liaWxpdHlSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkVmlzaWJpbGl0eVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM0ZDRkNGQ7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZE1lbnUgPSBzdHlsZWQuZGl2PHsgJHBsYWNlbWVudD86ICd0b3AnIHwgJ2JvdHRvbScgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDZweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCAwIHJnYmEoMTgsIDE4LCAxOCwgMC4yNCk7XG4gIHotaW5kZXg6IDUwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAkeyh7ICRwbGFjZW1lbnQgPSAnYm90dG9tJyB9KSA9PlxuICAgICRwbGFjZW1lbnQgPT09ICdib3R0b20nXG4gICAgICA/IGBcbiAgICB0b3A6IDM2cHg7XG4gICAgYm90dG9tOiBhdXRvO1xuICBgXG4gICAgICA6IGBcbiAgICBib3R0b206IGNhbGMoMTAwJSAtIDEycHgpO1xuICAgIHRvcDogYXV0bztcbiAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkTWVudUl0ZW0gPSBzdHlsZWQuYnV0dG9uPHsgJGRlc3RydWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMTBweCA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkeyh7ICRkZXN0cnVjdGl2ZSB9KSA9PiAoJGRlc3RydWN0aXZlID8gJyNkOTJlMmUnIDogJyMyMDIwMjAnKX07XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZSA9IHN0eWxlZC5oM2BcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzc0cHg7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0xvYWRXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAyNHB4IDA7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUVyRCxJQUFNQywyQkFBMkIsR0FBRyxHQUFHO0FBRXZDLE9BQU8sSUFBTUMsYUFBYSxHQUFHSCxNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtTUFZdEM7QUFFRCxPQUFPLElBQU1DLFFBQVEsR0FBR1IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUxBTVRMLDJCQUEyQixDQU1uRDtBQUVELE9BQU8sSUFB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
180
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjYXNjYWRlSXRlbSIsIlNLSUxMU19DT05URU5UX01BWF9XSURUSF9QWCIsIlNDTVNDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTVNCb2R5IiwiU0NNU1RpdGxlQmxvY2siLCJTQ01TVGl0bGUiLCJoMiIsIlNDTVNQYW5lbCIsIlNDTVNQYW5lbEhlYWRlciIsIlNDTVNMaXN0U2Nyb2xsQXJlYSIsIlNDTVNUYWJCYXIiLCJTQ01TVGFiSW5mb0ljb24iLCJzcGFuIiwiU0NNU1RhYkJ1dHRvbiIsImJ1dHRvbiIsIl9yZWYiLCIkYWN0aXZlIiwiX3JlZjIiLCJfcmVmMyIsIlNDTVNNZXRhUm93IiwiU0NNU01ldGFEZXNjcmlwdGlvbiIsIlNDTVNDcmVhdGVNZW51V3JhcCIsIl9yZWY0IiwiJGVsZXZhdGVkIiwiU0NNU0NyZWF0ZUJ1dHRvbiIsIlNDTVNDcmVhdGVCdXR0b25UZXh0IiwiU0NNU0NyZWF0ZU1lbnUiLCJfcmVmNSIsIl9yZWY1JCRwbGFjZW1lbnQiLCIkcGxhY2VtZW50IiwiU0NNU0NyZWF0ZU1lbnVJdGVtIiwiU0NNU1NlYXJjaFdyYXBwZXIiLCJTQ01TU2VhcmNoSW5wdXQiLCJpbnB1dCIsIlNDTVNDYXJkc0xpc3QiLCJTQ01TQ2FyZEJ1dHRvbiIsIl9yZWY2IiwiX3JlZjciLCIkaW5kZXgiLCJ1bmRlZmluZWQiLCJTQ01TQ2FyZFRvcFJvdyIsIlNDTVNDYXJkVGl0bGVOYW1lIiwiU0NNU0tlYmFiQnV0dG9uIiwiX3JlZjgiLCIkdmlzaWJsZSIsIlNDTVNDYXJkQ29udGVudFRleHQiLCJwIiwiU0NNU0NhcmRWaXNpYmlsaXR5Um93IiwiU0NNU0NhcmRWaXNpYmlsaXR5VGV4dCIsIlNDTVNDYXJkTWVudSIsIl9yZWY5IiwiX3JlZjkkJHBsYWNlbWVudCIsIlNDTVNDYXJkTWVudUl0ZW0iLCJfcmVmMCIsIiRkZXN0cnVjdGl2ZSIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlUm9vdCIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlVGl0bGUiLCJoMyIsIlNDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01TRW1wdHlTdGF0ZUJ1dHRvbiIsIlNDTVNCbG9ja2VkQmFubmVyV3JhcCIsIlNDTVNMb2FkV3JhcHBlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNeVNraWxscy9DaGF0QUlNeVNraWxscy5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCB7IGNhc2NhZGVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2Nhc2NhZGUnXG5cbmNvbnN0IFNLSUxMU19DT05URU5UX01BWF9XSURUSF9QWCA9IDQ1OFxuXG5leHBvcnQgY29uc3QgU0NNU0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMThweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDYwcHggMTNweCAxMnB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgJHtTS0lMTFNfQ09OVEVOVF9NQVhfV0lEVEhfUFh9cHgpO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TVGl0bGVCbG9jayA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TVGl0bGUgPSBzdHlsZWQuaDJgXG4gIG1hcmdpbjogMDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TUGFuZWwgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1BhbmVsSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0xpc3RTY3JvbGxBcmVhID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1RhYkJhciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TVGFiSW5mb0ljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nOiA0cHg7XG4gIGN1cnNvcjogaGVscDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNUYWJCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAnIzA4YycgOiAndHJhbnNwYXJlbnQnKX07XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAnIzA4YycgOiAnIzRkNGQ0ZCcpfTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyA1MDAgOiA0MDApfTtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU01ldGFSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNNZXRhRGVzY3JpcHRpb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogMSAwIDA7XG4gIC8qIElndWFsYSBlbCBhbHRvIGRlbCBib3TDs24gZGUgY3JlYXIgcGFyYSBxdWUgbGEgZmlsYSBubyBzYWx0ZSBhbCBjYW1iaWFyIGRlIHRhYi4gKi9cbiAgbWluLWhlaWdodDogMzJweDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ3JlYXRlTWVudVdyYXAgPSBzdHlsZWQuZGl2PHsgJGVsZXZhdGVkPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgei1pbmRleDogJHsoeyAkZWxldmF0ZWQgfSkgPT4gKCRlbGV2YXRlZCA/IDMwIDogJ2F1dG8nKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ3JlYXRlQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiA3NHB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwOGM7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tR3JhZGllbnRlLTEsIGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDcmVhdGVCdXR0b25UZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDEgMCAwO1xuICBjb2xvcjogIzA4YztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NyZWF0ZU1lbnUgPSBzdHlsZWQuZGl2PHsgJHBsYWNlbWVudD86ICd0b3AnIHwgJ2JvdHRvbScgfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxNjNweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCAwIHJnYmEoMTgsIDE4LCAxOCwgMC4yNCk7XG4gIHotaW5kZXg6IDUwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAkeyh7ICRwbGFjZW1lbnQgPSAnYm90dG9tJyB9KSA9PlxuICAgICRwbGFjZW1lbnQgPT09ICdib3R0b20nXG4gICAgICA/IGBcbiAgICB0b3A6IGNhbGMoMTAwJSArIDZweCk7XG4gICAgYm90dG9tOiBhdXRvO1xuICBgXG4gICAgICA6IGBcbiAgICBib3R0b206IGNhbGMoMTAwJSArIDZweCk7XG4gICAgdG9wOiBhdXRvO1xuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NyZWF0ZU1lbnVJdGVtID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TU2VhcmNoV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6ICM4MDgwODA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNTZWFyY2hJbnB1dCA9IHN0eWxlZC5pbnB1dGBcbiAgZmxleDogMSAwIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOTk5O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZHNMaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NhcmRCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJGluZGV4PzogbnVtYmVyOyAkZWxldmF0ZWQ/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAkeyh7ICRlbGV2YXRlZCB9KSA9PiAoJGVsZXZhdGVkID8gMzAgOiAnYXV0bycpfTtcbiAgJHsoeyAkaW5kZXggfSkgPT4gKCRpbmRleCAhPT0gdW5kZWZpbmVkID8gY2FzY2FkZUl0ZW0oJGluZGV4KSA6ICcnKX1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZFRvcFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNDYXJkVGl0bGVOYW1lID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDEgMCAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGNvbG9yOiAjMjAyMDFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNLZWJhYkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkdmlzaWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6ICR7KHsgJHZpc2libGUgfSkgPT4gKCR2aXNpYmxlID8gMSA6IDApfTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE2MG1zIGVhc2UsXG4gICAgYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuXG4gICR7U0NNU0NhcmRCdXR0b259OmhvdmVyICYsXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZENvbnRlbnRUZXh0ID0gc3R5bGVkLnBgXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NhcmRWaXNpYmlsaXR5Um93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZFZpc2liaWxpdHlUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjNGQ0ZDRkO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0NhcmRNZW51ID0gc3R5bGVkLmRpdjx7ICRwbGFjZW1lbnQ/OiAndG9wJyB8ICdib3R0b20nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTA2cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDE4LCAxOCwgMTgsIDAuMjQpO1xuICB6LWluZGV4OiA1MDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHsoeyAkcGxhY2VtZW50ID0gJ2JvdHRvbScgfSkgPT5cbiAgICAkcGxhY2VtZW50ID09PSAnYm90dG9tJ1xuICAgICAgPyBgXG4gICAgdG9wOiAzNnB4O1xuICAgIGJvdHRvbTogYXV0bztcbiAgYFxuICAgICAgOiBgXG4gICAgYm90dG9tOiBjYWxjKDEwMCUgLSAxMnB4KTtcbiAgICB0b3A6IGF1dG87XG4gIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TQ2FyZE1lbnVJdGVtID0gc3R5bGVkLmJ1dHRvbjx7ICRkZXN0cnVjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJHsoeyAkZGVzdHJ1Y3RpdmUgfSkgPT4gKCRkZXN0cnVjdGl2ZSA/ICcjZDkyZTJlJyA6ICcjMjAyMDIwJyl9O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01TU2hhcmVkRW1wdHlTdGF0ZVJvb3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZUJsb2NrID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU1NoYXJlZEVtcHR5U3RhdGVUaXRsZSA9IHN0eWxlZC5oM2BcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzc0cHg7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTVNTaGFyZWRFbXB0eVN0YXRlU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0VtcHR5U3RhdGVCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIG9wYWNpdHk6IDAuOTI7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNU0Jsb2NrZWRCYW5uZXJXcmFwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbWluKDEwMCUsICR7U0tJTExTX0NPTlRFTlRfTUFYX1dJRFRIX1BYfXB4KTtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNU0xvYWRXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBj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