@projectcor/maia-components 2.50.0 → 2.50.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/lib/App.js +44 -19
  2. package/lib/components/atoms/ActionableButton.spec.js +111 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +52 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +11 -0
  5. package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.spec.js +63 -0
  6. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +183 -0
  7. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
  8. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +3 -1
  9. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +139 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +385 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +3 -1
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
  13. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +94 -0
  14. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +24 -14
  15. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +396 -0
  16. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +28 -10
  17. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +526 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +19 -15
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +169 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +8 -4
  23. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
  25. package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
  26. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
  27. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  28. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  29. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
  30. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +45 -0
  31. package/lib/components/atoms/ClientSelector/ClientSelector.js +15 -13
  32. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +133 -0
  33. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.spec.js +107 -0
  34. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  35. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
  36. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +109 -0
  37. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
  38. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +92 -0
  39. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +319 -0
  40. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
  41. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
  42. package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
  43. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
  44. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
  45. package/lib/components/atoms/Expand/Expand.spec.js +57 -0
  46. package/lib/components/atoms/Fade/Fade.js +10 -6
  47. package/lib/components/atoms/Fade/Fade.spec.js +66 -0
  48. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
  49. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
  50. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  51. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
  52. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  53. package/lib/components/atoms/HelpButton.spec.js +87 -0
  54. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
  55. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
  56. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
  57. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
  58. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
  59. package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
  60. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  61. package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
  62. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +3 -2
  63. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +113 -0
  64. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +3 -2
  65. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +381 -0
  66. package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -7
  67. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +641 -0
  68. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +92 -0
  69. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +193 -0
  70. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +32 -0
  71. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
  72. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
  73. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +9 -4
  74. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +114 -0
  75. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +51 -0
  76. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +48 -0
  77. package/lib/components/atoms/ModalProject/ModalProject.spec.js +66 -0
  78. package/lib/components/atoms/NextPageLoader.spec.js +37 -0
  79. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +20 -0
  80. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
  81. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
  82. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +4 -5
  83. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +146 -0
  84. package/lib/components/atoms/PrimaryButton.spec.js +42 -0
  85. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
  86. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  87. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  88. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +41 -24
  89. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +25 -10
  90. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  91. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +78 -43
  92. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +170 -0
  93. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +9 -11
  94. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +199 -0
  95. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
  96. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +37 -15
  97. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
  98. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +8 -0
  99. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
  100. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  101. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
  102. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +29 -0
  103. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +38 -0
  104. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +16 -0
  105. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  106. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +24 -0
  107. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +71 -0
  108. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +120 -0
  109. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  110. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
  111. package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +25 -0
  112. package/lib/components/atoms/TextArea/TextArea.spec.js +126 -0
  113. package/lib/components/atoms/ThirdButton.spec.js +29 -0
  114. package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
  115. package/lib/components/atoms/WithAppCfg.spec.js +82 -0
  116. package/lib/components/index.js +2 -1
  117. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
  118. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +3 -2
  119. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +742 -0
  120. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +107 -0
  121. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +256 -0
  122. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +6 -4
  123. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +175 -0
  124. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +25 -16
  125. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +318 -0
  126. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
  127. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
  128. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
  129. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
  130. package/lib/components/molecules/AgentInputBlock/index.js +5 -0
  131. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
  132. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
  133. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
  134. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
  135. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
  136. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
  137. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  138. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
  139. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
  140. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +622 -0
  141. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +93 -72
  142. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +264 -0
  143. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
  144. package/lib/components/molecules/ChatAIHome/styles.js +85 -78
  145. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  146. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +742 -0
  147. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +30 -14
  148. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +541 -0
  149. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  150. package/lib/components/molecules/ChatAIMessages/newStyles.js +32 -35
  151. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
  152. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +1394 -0
  153. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
  154. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +1401 -0
  155. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  156. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
  157. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
  158. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
  159. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
  160. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
  161. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +142 -0
  162. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +63 -367
  163. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
  164. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +69 -0
  165. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +144 -0
  166. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +95 -0
  167. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +174 -0
  168. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +99 -0
  169. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +65 -0
  170. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  171. package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
  172. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
  173. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
  174. package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
  175. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +93 -0
  176. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +297 -0
  177. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +62 -0
  178. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +221 -0
  179. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
  180. package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -4
  181. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +369 -0
  182. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
  183. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +104 -0
  184. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +5 -2
  185. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
  186. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  187. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  188. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
  189. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
  190. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
  191. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
  192. package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +119 -0
  193. package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
  194. package/lib/components/molecules/Sidebar/Sidebar.spec.js +464 -0
  195. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +1067 -0
  196. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
  197. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1236 -0
  198. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
  199. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +77 -0
  200. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +503 -0
  201. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  202. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
  203. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +246 -0
  204. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  205. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  206. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  207. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  208. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +284 -0
  209. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +275 -0
  210. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +196 -0
  211. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +94 -0
  212. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +69 -0
  213. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
  214. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  215. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  216. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  217. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
  218. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  219. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  220. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  221. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
  222. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
  223. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +11 -7
  224. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
  225. package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
  226. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
  227. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +4 -1
  228. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
  229. package/lib/constants/formatExtensions.spec.js +15 -0
  230. package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
  231. package/lib/constants/maiaFeatureAccess.spec.js +30 -0
  232. package/lib/constants/maiaHourAgentAccess.spec.js +30 -0
  233. package/lib/constants/maiaTaskPanelAccess.spec.js +41 -0
  234. package/lib/constants/permissions/clientRoleAccess.spec.js +65 -0
  235. package/lib/constants/permissions/index.js +2 -2
  236. package/lib/constants/permissions/utils.js +4 -1
  237. package/lib/constants/permissions/utils.spec.js +128 -0
  238. package/lib/constants/plannerSyncEvents.spec.js +31 -0
  239. package/lib/constants/taskUrls.spec.js +9 -0
  240. package/lib/dev/DevMaiaPage.js +30 -0
  241. package/lib/dev/DevReasoningTimeline.js +68 -37
  242. package/lib/dev/Providers.js +5 -3
  243. package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
  244. package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
  245. package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
  246. package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
  247. package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +268 -0
  248. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +314 -0
  249. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
  250. package/lib/hooks/useAgentModel/useUpdateAgent.js +7 -6
  251. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +374 -0
  252. package/lib/hooks/useAgentSuggestions.spec.js +89 -0
  253. package/lib/hooks/useCaretPosition.spec.js +58 -0
  254. package/lib/hooks/useChatManager/useChatManager.helpers.js +3 -3
  255. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +2027 -0
  256. package/lib/hooks/useChatManager/useChatManager.js +8 -7
  257. package/lib/hooks/useChatManager/useChatManager.spec.js +2409 -0
  258. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +491 -0
  259. package/lib/hooks/useChatMessages/useChatMessages.spec.js +729 -0
  260. package/lib/hooks/useChats/useChats.spec.js +208 -0
  261. package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
  262. package/lib/hooks/useClientSearch.spec.js +86 -0
  263. package/lib/hooks/useContextMentions.helpers.spec.js +267 -0
  264. package/lib/hooks/useContextMentions.spec.js +338 -0
  265. package/lib/hooks/useContextPinPopover.helpers.spec.js +183 -0
  266. package/lib/hooks/useContextPinPopover.spec.js +159 -0
  267. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
  268. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
  269. package/lib/hooks/useDebounce.spec.js +42 -0
  270. package/lib/hooks/useEntitySearch.helpers.spec.js +723 -0
  271. package/lib/hooks/useEntitySearch.js +3 -1
  272. package/lib/hooks/useEntitySearch.spec.js +718 -0
  273. package/lib/hooks/useEvent.spec.js +45 -0
  274. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
  275. package/lib/hooks/useFrequentlyUsedActions.js +60 -22
  276. package/lib/hooks/useFrequentlyUsedActions.spec.js +135 -0
  277. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  278. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  279. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
  280. package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
  281. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
  282. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
  283. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +16 -15
  284. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
  285. package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
  286. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
  287. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  288. package/lib/hooks/useMentionPopover.helpers.spec.js +100 -0
  289. package/lib/hooks/useMentionPopover.spec.js +392 -0
  290. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +176 -0
  291. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
  292. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  293. package/lib/hooks/useModal/useModal.spec.js +73 -0
  294. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +138 -0
  295. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +417 -0
  296. package/lib/hooks/useProjectSearch.helpers.spec.js +89 -0
  297. package/lib/hooks/useProjectSearch.spec.js +91 -0
  298. package/lib/hooks/useProjectSummary.spec.js +193 -0
  299. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +151 -0
  300. package/lib/hooks/useProjectSummaryConfig.js +10 -5
  301. package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
  302. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
  303. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
  304. package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
  305. package/lib/hooks/useRecentContexts.spec.js +139 -0
  306. package/lib/hooks/useResize.spec.js +37 -0
  307. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  308. package/lib/hooks/useSlashCommands.spec.js +139 -0
  309. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
  310. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  311. package/lib/hooks/useStreamResponse.spec.js +199 -0
  312. package/lib/hooks/useT.spec.js +20 -0
  313. package/lib/hooks/useToggle.spec.js +33 -0
  314. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
  315. package/lib/index.js +5 -2
  316. package/lib/lang/br/index.js +26 -1
  317. package/lib/lang/en/index.js +26 -1
  318. package/lib/lang/es/index.js +26 -1
  319. package/lib/lang/fr/index.js +26 -1
  320. package/lib/services/appcues.spec.js +37 -0
  321. package/lib/services/maia/Access/updateAccess.spec.js +137 -0
  322. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  323. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +56 -0
  324. package/lib/services/maia/Actions/getSlashCommands.spec.js +91 -0
  325. package/lib/services/maia/Agents/connectors.js +3 -1
  326. package/lib/services/maia/Agents/connectors.spec.js +496 -0
  327. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  328. package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
  329. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  330. package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
  331. package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
  332. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
  333. package/lib/services/maia/Agents/getAgents.helpers.spec.js +325 -0
  334. package/lib/services/maia/Agents/getAgents.spec.js +1135 -0
  335. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  336. package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
  337. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  338. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  339. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  340. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  341. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  342. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  343. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  344. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  345. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  346. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  347. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  348. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +225 -0
  349. package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
  350. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  351. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
  352. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  353. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  354. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  355. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  356. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  357. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  358. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  359. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  360. package/lib/services/maia/client.spec.js +56 -0
  361. package/lib/services/utils/fetchCOR.spec.js +211 -0
  362. package/lib/services/utils/getCookie.spec.js +20 -0
  363. package/lib/services/utils/mapChatMessages.helpers.spec.js +336 -0
  364. package/lib/services/utils/mapChatMessages.spec.js +254 -0
  365. package/lib/store/chatsSidebarOptimistic.spec.js +145 -0
  366. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  367. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  368. package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
  369. package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
  370. package/lib/store/sessions/sessionNotifications.spec.js +106 -0
  371. package/lib/store/sessions/sessionStreamManager.helpers.spec.js +177 -0
  372. package/lib/store/sessions/sessionStreamManager.js +51 -55
  373. package/lib/store/sessions/sessionStreamManager.spec.js +939 -0
  374. package/lib/store/sessions/sessions.types.spec.js +16 -0
  375. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  376. package/lib/store/useChatsStore.js +4 -3
  377. package/lib/store/useChatsStore.spec.js +619 -0
  378. package/lib/store/useFaqsStore.spec.js +57 -0
  379. package/lib/styles/cascade.js +29 -3
  380. package/lib/styles/transitions.js +3 -1
  381. package/lib/types/global.d.js +1 -1
  382. package/lib/utils/actionCategoryMap.spec.js +18 -0
  383. package/lib/utils/agentDisplayName.spec.js +48 -0
  384. package/lib/utils/autoApproveStorage.spec.js +25 -0
  385. package/lib/utils/chatInputFiles.spec.js +39 -0
  386. package/lib/utils/contextMentionIcons.spec.js +41 -0
  387. package/lib/utils/contextMentionLabel.spec.js +13 -0
  388. package/lib/utils/contextMentionTriggers.spec.js +44 -0
  389. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  390. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  391. package/lib/utils/entityLinkRender.spec.js +72 -0
  392. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  393. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  394. package/lib/utils/formatUnreadCount.spec.js +12 -0
  395. package/lib/utils/getUnitFileSize.spec.js +18 -0
  396. package/lib/utils/hitlAnalytics.spec.js +136 -0
  397. package/lib/utils/hoursPlannerQuickActionType.js +74 -1
  398. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  399. package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
  400. package/lib/utils/imagePreprocessor.js +14 -3
  401. package/lib/utils/imagePreprocessor.spec.js +112 -0
  402. package/lib/utils/maiaPageRoute.js +24 -0
  403. package/lib/utils/maiaPageRoute.spec.js +23 -0
  404. package/lib/utils/mapBackendLang.spec.js +19 -0
  405. package/lib/utils/navigateContextEntity.js +2 -2
  406. package/lib/utils/navigateContextEntity.spec.js +50 -0
  407. package/lib/utils/normalizeAgentConnectors.spec.js +98 -0
  408. package/lib/utils/openTaskInCorPanel.js +2 -2
  409. package/lib/utils/openTaskInCorPanel.spec.js +43 -0
  410. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  411. package/lib/utils/reasoningMappers.spec.js +103 -0
  412. package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
  413. package/lib/utils/renderContextMentions.helpers.spec.js +87 -0
  414. package/lib/utils/renderContextMentions.spec.js +268 -0
  415. package/lib/utils/retryCompletion.spec.js +181 -0
  416. package/lib/utils/skillContentSize.spec.js +13 -0
  417. package/lib/utils/slashCommandMarker.spec.js +43 -0
  418. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  419. package/lib/utils/sseStreamContent.spec.js +31 -0
  420. package/lib/utils/streamActivityMessages.helpers.js +5 -4
  421. package/lib/utils/streamActivityMessages.helpers.spec.js +84 -0
  422. package/lib/utils/streamActivityMessages.js +32 -20
  423. package/lib/utils/streamActivityMessages.spec.js +336 -0
  424. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  425. package/package.json +1 -1
  426. package/README.md +0 -2
@@ -22,19 +22,26 @@ var recentContextLoading = keyframes(["0%{opacity:0.45;}50%{opacity:0.85;}100%{o
22
22
  export var SCCAIHomeContainer = styled.div.withConfig({
23
23
  displayName: "styles__SCCAIHomeContainer",
24
24
  componentId: "sc-33wjx7-0"
25
- })(["flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;max-height:100%;min-height:0;overflow:hidden;position:relative;animation:", " 0.5s ease-out;@media (min-height:1000px){justify-content:", ";}"], fadeIn, function (props) {
25
+ })(["flex:1;width:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:100%;max-height:100%;min-height:0;overflow:hidden;position:relative;animation:", " 0.5s ease-out;@media (min-height:1000px){justify-content:", ";}"], fadeIn, function (props) {
26
26
  return props.$alignStart ? 'flex-start' : 'center';
27
27
  });
28
+
29
+ /** Scroller a ancho completo: en fullscreen el wheel en los márgenes debe mover el home, no el body. */
30
+ export var SCCAIHomeScroll = styled.div.withConfig({
31
+ displayName: "styles__SCCAIHomeScroll",
32
+ componentId: "sc-33wjx7-1"
33
+ })(["flex:1 1 0%;width:100%;min-height:0;display:flex;justify-content:center;position:relative;", ""], function (_ref) {
34
+ var $scrollable = _ref.$scrollable;
35
+ return $scrollable && css(["overflow-y:auto;overscroll-behavior-y:contain;"]);
36
+ });
28
37
  export var SCCAIHomeContent = styled.div.withConfig({
29
38
  displayName: "styles__SCCAIHomeContent",
30
- componentId: "sc-33wjx7-1"
31
- })(["display:flex;padding:0;align-items:", ";gap:0;flex-direction:column;width:100%;max-width:", ";align-self:center;margin:0 auto;justify-content:", ";flex:1;min-height:0;position:relative;", " ", " @media (min-height:1000px){justify-content:", ";padding:", ";flex:", ";}"], function (props) {
39
+ componentId: "sc-33wjx7-2"
40
+ })(["display:flex;padding:0;align-items:", ";gap:0;flex-direction:column;width:100%;max-width:", ";align-self:center;margin:0 auto;justify-content:", ";flex:1;min-height:0;position:relative;", " @media (min-height:1000px){justify-content:", ";padding:", ";flex:", ";}"], function (props) {
32
41
  return props.$alignStart ? 'stretch' : 'center';
33
42
  }, function (props) {
34
43
  return props.$fixedContentWidth ? "".concat(props.$fixedContentWidth, "px") : '864px';
35
44
  }, justifySCCAIHomeContentMain, function (props) {
36
- return props.showFAQs && 'overflow-y: auto; overscroll-behavior-y: contain;';
37
- }, function (props) {
38
45
  if (props.$fixedContentWidth) {
39
46
  return "\n box-sizing: border-box;\n padding: 0;\n align-items: ".concat(props.$alignStart ? 'stretch' : 'flex-start', ";\n ");
40
47
  }
@@ -46,7 +53,7 @@ export var SCCAIHomeContent = styled.div.withConfig({
46
53
  });
47
54
  export var SCCAIHomeContentInner = styled.div.withConfig({
48
55
  displayName: "styles__SCCAIHomeContentInner",
49
- componentId: "sc-33wjx7-2"
56
+ componentId: "sc-33wjx7-3"
50
57
  })(["display:flex;padding:", ";align-items:", ";gap:12px;flex-direction:column;width:100%;", " box-sizing:border-box;justify-content:", ";margin-top:", ";@media (min-height:1000px){margin-top:0;}", ""], function (props) {
51
58
  if (props.$sectionOrchestratorHome) return '32px 0';
52
59
  if (props.$headerCollaboratorHome) return '50px 0 16px 0';
@@ -64,41 +71,41 @@ export var SCCAIHomeContentInner = styled.div.withConfig({
64
71
  return '0';
65
72
  }
66
73
  return props.$isAgentView ? 'calc(50vh - 80px - 16px - 56px)' : '0';
67
- }, function (_ref) {
68
- var $alignStart = _ref.$alignStart;
74
+ }, function (_ref2) {
75
+ var $alignStart = _ref2.$alignStart;
69
76
  return $alignStart && css(["& > *{max-width:100%;}"]);
70
77
  });
71
78
  export var SCCAIHomeDynamicSection = styled.div.withConfig({
72
79
  displayName: "styles__SCCAIHomeDynamicSection",
73
- componentId: "sc-33wjx7-3"
80
+ componentId: "sc-33wjx7-4"
74
81
  })(["position:relative;width:100%;display:flex;flex-direction:column;align-items:", ";gap:24px;flex-shrink:0;", " ", ""], function (props) {
75
82
  return props.$alignStart ? 'stretch' : 'center';
76
- }, function (_ref2) {
77
- var $grow = _ref2.$grow;
78
- return $grow && 'flex: 1 1 auto; min-height: 0;';
79
83
  }, function (_ref3) {
80
- var $alignStart = _ref3.$alignStart;
84
+ var $grow = _ref3.$grow;
85
+ return $grow && 'flex: 1 1 auto; min-height: 0;';
86
+ }, function (_ref4) {
87
+ var $alignStart = _ref4.$alignStart;
81
88
  return $alignStart && css(["& > *{max-width:100%;}"]);
82
89
  });
83
90
  export var SCCAIHomeLoadingOverlay = styled.div.withConfig({
84
91
  displayName: "styles__SCCAIHomeLoadingOverlay",
85
- componentId: "sc-33wjx7-4"
92
+ componentId: "sc-33wjx7-5"
86
93
  })(["position:absolute;top:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1;"]);
87
94
  export var SCCAIHomeGradientTop = styled.div.withConfig({
88
95
  displayName: "styles__SCCAIHomeGradientTop",
89
- componentId: "sc-33wjx7-5"
96
+ componentId: "sc-33wjx7-6"
90
97
  })(["position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient( to bottom,#ffffff 0%,rgba(255,255,255,0.9) 30%,rgba(255,255,255,0.5) 70%,rgba(255,255,255,0) 100% );pointer-events:none;z-index:10;opacity:", ";transition:opacity 0.3s ease-in-out;width:100%;max-width:864px;margin:0 auto;"], function (props) {
91
98
  return props.$show ? 1 : 0;
92
99
  });
93
100
  export var SCCAIHomeGradientBottom = styled.div.withConfig({
94
101
  displayName: "styles__SCCAIHomeGradientBottom",
95
- componentId: "sc-33wjx7-6"
102
+ componentId: "sc-33wjx7-7"
96
103
  })(["position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient( to top,#ffffff 0%,rgba(255,255,255,0.9) 30%,rgba(255,255,255,0.5) 70%,rgba(255,255,255,0) 100% );pointer-events:none;z-index:10;opacity:", ";transition:opacity 0.3s ease-in-out;width:100%;max-width:864px;margin:0 auto;"], function (props) {
97
104
  return props.$show ? 1 : 0;
98
105
  });
99
106
  export var SCCAIHomeHeader = styled.div.withConfig({
100
107
  displayName: "styles__SCCAIHomeHeader",
101
- componentId: "sc-33wjx7-7"
108
+ componentId: "sc-33wjx7-8"
102
109
  })(["display:flex;flex-direction:column;gap:", ";align-items:", ";max-width:", ";width:100%;flex-shrink:0;justify-content:", ";"], function (props) {
103
110
  return props.$gap || '20px';
104
111
  }, function (props) {
@@ -110,13 +117,13 @@ export var SCCAIHomeHeader = styled.div.withConfig({
110
117
  });
111
118
  export var SCCAIHomeAgentInfoContainer = styled.div.withConfig({
112
119
  displayName: "styles__SCCAIHomeAgentInfoContainer",
113
- componentId: "sc-33wjx7-8"
120
+ componentId: "sc-33wjx7-9"
114
121
  })(["display:flex;flex-direction:column;gap:4px;align-items:center;width:100%;"]);
115
122
 
116
123
  /** Header MAIA (isologo + saludo): gap 0 si no hay texto de saludo */
117
124
  export var SCCAIHomeMaiaHeaderStack = styled.div.withConfig({
118
125
  displayName: "styles__SCCAIHomeMaiaHeaderStack",
119
- componentId: "sc-33wjx7-9"
126
+ componentId: "sc-33wjx7-10"
120
127
  })(["display:flex;flex-direction:column;align-items:", ";align-self:", ";width:", ";gap:", ";"], function (p) {
121
128
  return p.$align === 'start' ? 'flex-start' : 'center';
122
129
  }, function (p) {
@@ -128,12 +135,12 @@ export var SCCAIHomeMaiaHeaderStack = styled.div.withConfig({
128
135
  });
129
136
  export var SCCAIHomeGreeting = styled.span.withConfig({
130
137
  displayName: "styles__SCCAIHomeGreeting",
131
- componentId: "sc-33wjx7-10"
132
- })(["font-size:", ";font-weight:500;color:rgba(32,32,31,1);line-height:", ";text-align:", ";white-space:normal;word-break:normal;overflow-wrap:break-word;", " ", ""], function (_ref4) {
133
- var $size = _ref4.$size;
134
- return $size === 'md' ? '16px' : '20px';
135
- }, function (_ref5) {
138
+ componentId: "sc-33wjx7-11"
139
+ })(["font-size:", ";font-weight:500;color:rgba(32,32,31,1);line-height:", ";text-align:", ";white-space:normal;word-break:normal;overflow-wrap:break-word;", " ", ""], function (_ref5) {
136
140
  var $size = _ref5.$size;
141
+ return $size === 'md' ? '16px' : '20px';
142
+ }, function (_ref6) {
143
+ var $size = _ref6.$size;
137
144
  return $size === 'md' ? '24px' : '122%';
138
145
  }, function (props) {
139
146
  return props.$align === 'start' ? 'left' : 'center';
@@ -144,23 +151,23 @@ export var SCCAIHomeGreeting = styled.span.withConfig({
144
151
  });
145
152
  export var SCCAIHomeTitle = styled.span.withConfig({
146
153
  displayName: "styles__SCCAIHomeTitle",
147
- componentId: "sc-33wjx7-11"
148
- })(["max-width:", ";color:#20201f;text-align:", ";font-family:'Work Sans';font-size:", ";font-style:normal;font-weight:600;line-height:", ";letter-spacing:0;"], function (_ref6) {
149
- var $size = _ref6.$size,
150
- $fullWidth = _ref6.$fullWidth;
154
+ componentId: "sc-33wjx7-12"
155
+ })(["max-width:", ";color:#20201f;text-align:", ";font-family:'Work Sans';font-size:", ";font-style:normal;font-weight:600;line-height:", ";letter-spacing:0;"], function (_ref7) {
156
+ var $size = _ref7.$size,
157
+ $fullWidth = _ref7.$fullWidth;
151
158
  if ($fullWidth) return '100%';
152
159
  if ($size === 'md' || $size === 'context') return '320px';
153
160
  return '432px';
154
- }, function (_ref7) {
155
- var $align = _ref7.$align;
156
- return $align === 'start' ? 'left' : 'center';
157
161
  }, function (_ref8) {
158
- var $size = _ref8.$size;
162
+ var $align = _ref8.$align;
163
+ return $align === 'start' ? 'left' : 'center';
164
+ }, function (_ref9) {
165
+ var $size = _ref9.$size;
159
166
  if ($size === 'md') return '16px';
160
167
  if ($size === 'context') return '20px';
161
168
  return '28px';
162
- }, function (_ref9) {
163
- var $size = _ref9.$size;
169
+ }, function (_ref0) {
170
+ var $size = _ref0.$size;
164
171
  if ($size === 'md') return '24px';
165
172
  if ($size === 'context') return '24px';
166
173
  return '32px';
@@ -169,57 +176,57 @@ export var SCCAIHomeTitle = styled.span.withConfig({
169
176
  /** Bloque título + bajada (Figma Title): gap 0 entre ambos. */
170
177
  export var SCCAIHomeTitleBlock = styled.div.withConfig({
171
178
  displayName: "styles__SCCAIHomeTitleBlock",
172
- componentId: "sc-33wjx7-12"
173
- })(["display:flex;flex-direction:column;justify-content:center;align-items:", ";gap:0;align-self:stretch;max-width:", ";"], function (_ref0) {
174
- var $align = _ref0.$align;
179
+ componentId: "sc-33wjx7-13"
180
+ })(["display:flex;flex-direction:column;justify-content:center;align-items:", ";gap:0;align-self:stretch;max-width:", ";"], function (_ref1) {
181
+ var $align = _ref1.$align;
175
182
  return $align === 'start' ? 'flex-start' : 'center';
176
- }, function (_ref1) {
177
- var $fullWidth = _ref1.$fullWidth;
183
+ }, function (_ref10) {
184
+ var $fullWidth = _ref10.$fullWidth;
178
185
  return $fullWidth ? '100%' : '320px';
179
186
  });
180
187
  export var SCCAIHomeSubtitle = styled.span.withConfig({
181
188
  displayName: "styles__SCCAIHomeSubtitle",
182
- componentId: "sc-33wjx7-13"
183
- })(["align-self:stretch;color:#4d4d4d;text-align:", ";font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;white-space:pre-line;", ""], function (_ref10) {
184
- var $align = _ref10.$align;
189
+ componentId: "sc-33wjx7-14"
190
+ })(["align-self:stretch;color:#4d4d4d;text-align:", ";font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;white-space:pre-line;", ""], function (_ref11) {
191
+ var $align = _ref11.$align;
185
192
  return $align === 'start' ? 'left' : 'center';
186
- }, function (_ref11) {
187
- var $collaboratorHome = _ref11.$collaboratorHome;
193
+ }, function (_ref12) {
194
+ var $collaboratorHome = _ref12.$collaboratorHome;
188
195
  return $collaboratorHome && "\n && {\n font-size: 14px;\n line-height: 20px;\n }\n ";
189
196
  });
190
197
  export var SCCAIHomeAgentInfo = styled.span.withConfig({
191
198
  displayName: "styles__SCCAIHomeAgentInfo",
192
- componentId: "sc-33wjx7-14"
199
+ componentId: "sc-33wjx7-15"
193
200
  })(["color:#20201f;text-align:center;font-family:'Work Sans';font-size:24px;font-weight:500;line-height:115%;letter-spacing:-0.12px;"]);
194
201
  export var SCCAIHomeIntroduction = styled.span.withConfig({
195
202
  displayName: "styles__SCCAIHomeIntroduction",
196
- componentId: "sc-33wjx7-15"
203
+ componentId: "sc-33wjx7-16"
197
204
  })(["font-size:14px;line-height:140%;color:rgba(102,102,102,1);max-width:", ";text-align:center;display:inline-block;word-wrap:normal;overflow-wrap:normal;"], function (props) {
198
205
  return props.expanded ? '482px' : '360px';
199
206
  });
200
207
  export var SCCAIHomeHowItWorks = styled.span.withConfig({
201
208
  displayName: "styles__SCCAIHomeHowItWorks",
202
- componentId: "sc-33wjx7-16"
209
+ componentId: "sc-33wjx7-17"
203
210
  })(["color:#6f33a0;font-family:Work Sans;font-size:14px;line-height:140%;letter-spacing:-0.21px;cursor:pointer;&:hover{color:#aa6ede;}"]);
204
211
  export var SCCAIHomeProjectSummary = styled.div.withConfig({
205
212
  displayName: "styles__SCCAIHomeProjectSummary",
206
- componentId: "sc-33wjx7-17"
213
+ componentId: "sc-33wjx7-18"
207
214
  })(["display:flex;align-items:center;justify-content:center;padding:6px;border-radius:4px;"]);
208
215
  export var SCCAIHomeProjectSummaryContent = styled.div.withConfig({
209
216
  displayName: "styles__SCCAIHomeProjectSummaryContent",
210
- componentId: "sc-33wjx7-18"
217
+ componentId: "sc-33wjx7-19"
211
218
  })(["display:flex;flex-direction:column;"]);
212
219
  export var SCCAIHomeProjectSummaryTitle = styled.span.withConfig({
213
220
  displayName: "styles__SCCAIHomeProjectSummaryTitle",
214
- componentId: "sc-33wjx7-19"
221
+ componentId: "sc-33wjx7-20"
215
222
  })(["font-size:12px;color:rgba(32,32,31,1);"]);
216
223
  export var SCCAIHomeProjectSummaryDescription = styled.span.withConfig({
217
224
  displayName: "styles__SCCAIHomeProjectSummaryDescription",
218
- componentId: "sc-33wjx7-20"
225
+ componentId: "sc-33wjx7-21"
219
226
  })(["font-size:11px;color:rgba(102,102,102,1);"]);
220
227
  export var SCCAIHomeRecentContexts = styled.div.withConfig({
221
228
  displayName: "styles__SCCAIHomeRecentContexts",
222
- componentId: "sc-33wjx7-21"
229
+ componentId: "sc-33wjx7-22"
223
230
  })(["width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:", "px;max-width:", ";box-sizing:border-box;"], function (props) {
224
231
  var _props$$contentGap;
225
232
  return (_props$$contentGap = props.$contentGap) !== null && _props$$contentGap !== void 0 ? _props$$contentGap : 12;
@@ -228,108 +235,108 @@ export var SCCAIHomeRecentContexts = styled.div.withConfig({
228
235
  });
229
236
  export var SCCAIHomeCollaboratorSection = styled.div.withConfig({
230
237
  displayName: "styles__SCCAIHomeCollaboratorSection",
231
- componentId: "sc-33wjx7-22"
238
+ componentId: "sc-33wjx7-23"
232
239
  })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;width:100%;"]);
233
240
  export var SCCAIHomeRecentContextsSectionHeader = styled.div.withConfig({
234
241
  displayName: "styles__SCCAIHomeRecentContextsSectionHeader",
235
- componentId: "sc-33wjx7-23"
242
+ componentId: "sc-33wjx7-24"
236
243
  })(["display:flex;flex-direction:column;align-items:flex-start;gap:2px;align-self:stretch;width:100%;"]);
237
244
  export var SCCAIHomeRecentContextsSectionTitle = styled.span.withConfig({
238
245
  displayName: "styles__SCCAIHomeRecentContextsSectionTitle",
239
- componentId: "sc-33wjx7-24"
246
+ componentId: "sc-33wjx7-25"
240
247
  })(["align-self:stretch;color:#202020;font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;"]);
241
248
  export var SCCAIHomeRecentContextsSectionSubtitle = styled.span.withConfig({
242
249
  displayName: "styles__SCCAIHomeRecentContextsSectionSubtitle",
243
- componentId: "sc-33wjx7-25"
250
+ componentId: "sc-33wjx7-26"
244
251
  })(["align-self:stretch;color:#808080;font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;"]);
245
252
  export var SCCAIHomeRecentContextsTitle = styled.span.withConfig({
246
253
  displayName: "styles__SCCAIHomeRecentContextsTitle",
247
- componentId: "sc-33wjx7-26"
254
+ componentId: "sc-33wjx7-27"
248
255
  })(["width:100%;padding:6px;box-sizing:border-box;color:#4d4d4d;font-family:'Work Sans';font-size:12px;font-style:normal;font-weight:400;line-height:140%;"]);
249
256
  export var SCCAIHomeRecentContextsList = styled.div.withConfig({
250
257
  displayName: "styles__SCCAIHomeRecentContextsList",
251
- componentId: "sc-33wjx7-27"
258
+ componentId: "sc-33wjx7-28"
252
259
  })(["width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:", ";box-sizing:border-box;"], function (props) {
253
260
  return props.$flushPills ? '0' : '0 6px';
254
261
  });
255
262
  export var SCCAIHomeRecentContextPill = styled.button.withConfig({
256
263
  displayName: "styles__SCCAIHomeRecentContextPill",
257
- componentId: "sc-33wjx7-28"
264
+ componentId: "sc-33wjx7-29"
258
265
  })(["display:flex;align-items:center;align-self:stretch;gap:4px;width:100%;max-width:", ";padding:4px 8px;border-radius:20px;border:none;background:#ffffff;min-width:0;cursor:pointer;transition:background-color 0.14s ease;&:hover{background:#f9f9f9;}"], function (props) {
259
266
  return props.$fullWidth ? '100%' : '438px';
260
267
  });
261
268
  export var SCCAIHomeRecentContextPillIcon = styled.span.withConfig({
262
269
  displayName: "styles__SCCAIHomeRecentContextPillIcon",
263
- componentId: "sc-33wjx7-29"
270
+ componentId: "sc-33wjx7-30"
264
271
  })(["display:flex;align-items:center;justify-content:center;width:15px;height:15px;aspect-ratio:1 / 1;flex-shrink:0;"]);
265
272
  export var SCCAIHomeRecentContextPillText = styled.span.withConfig({
266
273
  displayName: "styles__SCCAIHomeRecentContextPillText",
267
- componentId: "sc-33wjx7-30"
274
+ componentId: "sc-33wjx7-31"
268
275
  })(["flex:1 1 auto;min-width:0;text-align:left;color:#202020;font-family:'Work Sans';font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
269
276
  export var SCCAIHomeRecentContextPillSkeleton = styled.div.withConfig({
270
277
  displayName: "styles__SCCAIHomeRecentContextPillSkeleton",
271
- componentId: "sc-33wjx7-31"
278
+ componentId: "sc-33wjx7-32"
272
279
  })(["width:100%;max-width:438px;height:28px;border-radius:20px;background:rgba(242,242,242,1);animation:", " 1.2s ease-in-out infinite;"], recentContextLoading);
273
280
  export var SCCAIHomeQAContainer = styled.div.withConfig({
274
281
  displayName: "styles__SCCAIHomeQAContainer",
275
- componentId: "sc-33wjx7-32"
282
+ componentId: "sc-33wjx7-33"
276
283
  })(["display:none;width:100%;flex-direction:column;gap:12px;"]);
277
284
  export var SCCAIHomeQATitle = styled.div.withConfig({
278
285
  displayName: "styles__SCCAIHomeQATitle",
279
- componentId: "sc-33wjx7-33"
286
+ componentId: "sc-33wjx7-34"
280
287
  })(["display:flex;align-items:center;gap:8px;padding:6px;line-height:140%;cursor:default;"]);
281
288
  export var SCCAIHomeQATitleText = styled.span.withConfig({
282
289
  displayName: "styles__SCCAIHomeQATitleText",
283
- componentId: "sc-33wjx7-34"
290
+ componentId: "sc-33wjx7-35"
284
291
  })(["font-size:14px;color:", ";"], VIOLET_IA_COLORS[500]);
285
292
  export var SCCAIHomeQAItem = styled.div.withConfig({
286
293
  displayName: "styles__SCCAIHomeQAItem",
287
- componentId: "sc-33wjx7-35"
294
+ componentId: "sc-33wjx7-36"
288
295
  })(["display:flex;align-items:center;gap:8px;padding:6px;cursor:pointer;"]);
289
296
  export var SCCAIHomeQAItemText = styled.span.withConfig({
290
297
  displayName: "styles__SCCAIHomeQAItemText",
291
- componentId: "sc-33wjx7-36"
298
+ componentId: "sc-33wjx7-37"
292
299
  })(["font-size:14px;color:rgb(102,102,102);line-height:140%;"]);
293
300
  export var StyledQAContainer = styled.div.withConfig({
294
301
  displayName: "styles__StyledQAContainer",
295
- componentId: "sc-33wjx7-37"
302
+ componentId: "sc-33wjx7-38"
296
303
  })(["display:flex;flex-direction:column;gap:16px;width:100%;margin-top:36px;flex:1;.ChatAIHome-qa-title{display:flex;align-items:center;gap:8px;color:", ";font-size:14px;line-height:140%;padding:0 6px;}.ChatAIHome-qa-list{display:flex;flex-direction:column;gap:12px;.ChatAIHome-qa-item{color:", ";font-size:14px;line-height:140%;display:flex;align-items:center;gap:8px;padding:6px;}}"], GLOBAL_COLORS.primary, colors.text.secondary);
297
304
  export var SCCAHWrapperSummaryProject = styled.div.withConfig({
298
305
  displayName: "styles__SCCAHWrapperSummaryProject",
299
- componentId: "sc-33wjx7-38"
306
+ componentId: "sc-33wjx7-39"
300
307
  })(["background-color:white;display:flex;border-radius:8px;padding:10px;border:1px solid rgba(242,242,242,1);width:100%;max-width:432px;align-items:center;gap:12px;cursor:pointer;flex-shrink:0;transition:background-color 0.2s ease-in-out,transform 0.1s ease-in-out;&:hover{background-color:#f2f2f2;}"]);
301
308
  export var SCCAIHomeCreatedByContainer = styled.div.withConfig({
302
309
  displayName: "styles__SCCAIHomeCreatedByContainer",
303
- componentId: "sc-33wjx7-39"
310
+ componentId: "sc-33wjx7-40"
304
311
  })(["display:flex;align-items:center;justify-content:center;width:100%;gap:12px;"]);
305
312
  export var SCCAIHomeCreatedByLine = styled.div.withConfig({
306
313
  displayName: "styles__SCCAIHomeCreatedByLine",
307
- componentId: "sc-33wjx7-40"
314
+ componentId: "sc-33wjx7-41"
308
315
  })(["flex:1;height:1px;background-color:rgba(200,200,200,0.5);"]);
309
316
  export var SCCAIHomeCreatedByText = styled.span.withConfig({
310
317
  displayName: "styles__SCCAIHomeCreatedByText",
311
- componentId: "sc-33wjx7-41"
318
+ componentId: "sc-33wjx7-42"
312
319
  })(["font-size:12px;color:#999999;cursor:default;"]);
313
320
  export var SCCAIHomeCreatedByTextName = styled.span.withConfig({
314
321
  displayName: "styles__SCCAIHomeCreatedByTextName",
315
- componentId: "sc-33wjx7-42"
322
+ componentId: "sc-33wjx7-43"
316
323
  })(["font-style:italic;"]);
317
324
  var gradientPulse1 = keyframes(["0%,100%{opacity:1;transform:translate(-50%,-50%) scale(1);}50%{opacity:0.5;transform:translate(-50%,-50%) scale(0.85);}"]);
318
325
  var gradientPulse2 = keyframes(["0%,100%{opacity:0.5;transform:translate(-50%,-50%) scale(0.85);}50%{opacity:1;transform:translate(-50%,-50%) scale(1);}"]);
319
326
  export var SCCAIHomeIconContainer = styled.div.withConfig({
320
327
  displayName: "styles__SCCAIHomeIconContainer",
321
- componentId: "sc-33wjx7-43"
328
+ componentId: "sc-33wjx7-44"
322
329
  })(["aspect-ratio:1/1;position:relative;display:flex;align-items:center;justify-content:center;"]);
323
330
  export var SCCAIHomeGradient1 = styled.div.withConfig({
324
331
  displayName: "styles__SCCAIHomeGradient1",
325
- componentId: "sc-33wjx7-44"
332
+ componentId: "sc-33wjx7-45"
326
333
  })(["position:absolute;width:100px;height:60px;border-radius:50%;background:radial-gradient(50% 50% at 50% 100%,#fffff 0%,#ffffff 100%);filter:blur(25px);animation:", " 3s ease-in-out infinite;z-index:0;top:50%;left:50%;"], gradientPulse1);
327
334
  export var SCCAIHomeGradient2 = styled.div.withConfig({
328
335
  displayName: "styles__SCCAIHomeGradient2",
329
- componentId: "sc-33wjx7-45"
336
+ componentId: "sc-33wjx7-46"
330
337
  })(["position:absolute;width:100px;height:60px;border-radius:50%;background:radial-gradient(50% 50% at 50% 100%,#ffffff 0%,#ffffff 100%);filter:blur(25px);animation:", " 3s ease-in-out infinite;z-index:0;top:50%;left:50%;"], gradientPulse2);
331
338
  export var SCCAIHomeLogoWrapper = styled.div.withConfig({
332
339
  displayName: "styles__SCCAIHomeLogoWrapper",
333
- componentId: "sc-33wjx7-46"
340
+ componentId: "sc-33wjx7-47"
334
341
  })(["position:relative;z-index:1;"]);
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIk1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFgiLCJqdXN0aWZ5U0NDQUlIb21lQ29udGVudE1haW4iLCJwcm9wcyIsIiRhbGlnblN0YXJ0IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGNlbnRlclZlcnRpY2FsbHkiLCJzaG93RkFRcyIsIiRpc0FnZW50VmlldyIsImp1c3RpZnlTQ0NBSUhvbWVDb250ZW50VGFsbFZpZXdwb3J0IiwiZmFkZUluIiwicmVjZW50Q29udGV4dExvYWRpbmciLCJTQ0NBSUhvbWVDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQ0FJSG9tZUNvbnRlbnQiLCIkZml4ZWRDb250ZW50V2lkdGgiLCJjb25jYXQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCIkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWUiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIl9yZWYiLCJTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbiIsIl9yZWYyIiwiJGdyb3ciLCJfcmVmMyIsIlNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5IiwiU0NDQUlIb21lR3JhZGllbnRUb3AiLCIkc2hvdyIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiJGdhcCIsIiRhbGlnbiIsIiRtYXhXaWR0aCIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsInAiLCIkbm9HYXAiLCJTQ0NBSUhvbWVHcmVldGluZyIsInNwYW4iLCJfcmVmNCIsIiRzaXplIiwiX3JlZjUiLCIkdHJ1bmNhdGUiLCJTQ0NBSUhvbWVUaXRsZSIsIl9yZWY2IiwiJGZ1bGxXaWR0aCIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIlNDQ0FJSG9tZVRpdGxlQmxvY2siLCJfcmVmMCIsIl9yZWYxIiwiU0NDQUlIb21lU3VidGl0bGUiLCJfcmVmMTAiLCJfcmVmMTEiLCIkY29sbGFib3JhdG9ySG9tZSIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsImV4cGFuZGVkIiwiU0NDQUlIb21lSG93SXRXb3JrcyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIl9wcm9wcyQkY29udGVudEdhcCIsIiRjb250ZW50R2FwIiwiU0NDQUlIb21lQ29sbGFib3JhdG9yU2VjdGlvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1RpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0IiwiJGZsdXNoUGlsbHMiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCIsImJ1dHRvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24iLCJTQ0NBSUhvbWVRQUNvbnRhaW5lciIsIlNDQ0FJSG9tZVFBVGl0bGUiLCJTQ0NBSUhvbWVRQVRpdGxlVGV4dCIsIlNDQ0FJSG9tZVFBSXRlbSIsIlNDQ0FJSG9tZVFBSXRlbVRleHQiLCJTdHlsZWRRQUNvbnRhaW5lciIsInByaW1hcnkiLCJ0ZXh0Iiwic2Vjb25kYXJ5IiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlMaW5lIiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lIiwiZ3JhZGllbnRQdWxzZTEiLCJncmFkaWVudFB1bHNlMiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVHcmFkaWVudDEiLCJTQ0NBSUhvbWVHcmFkaWVudDIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHsgR0xPQkFMX0NPTE9SUywgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbi8qKiBBbmNobyBkZWwgY29udGVuaWRvIEhPTUUgY29sYWJvcmFkb3IgKGhlYWRlcikgeSBzZWN0aW9uIG9yY2hlc3RyYXRvciAocHJvamVjdC9jbGllbnQvdGFzaykuICovXG5leHBvcnQgY29uc3QgTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCA9IDQ0OFxuXG5mdW5jdGlvbiBqdXN0aWZ5U0NDQUlIb21lQ29udGVudE1haW4ocHJvcHM6IHtcbiAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPzogYm9vbGVhblxuICAkY2VudGVyVmVydGljYWxseT86IGJvb2xlYW5cbiAgc2hvd0ZBUXM/OiBib29sZWFuXG4gICRpc0FnZW50Vmlldz86IGJvb2xlYW5cbiAgJGFsaWduU3RhcnQ/OiBib29sZWFuXG59KTogc3RyaW5nIHtcbiAgLy8gU2VjdGlvbiBob21lIChwcm9qZWN0L2NsaWVudC90YXNrKTogc2llbXByZSBhcnJpYmEuIFBsYW5uZXI6IGNlbnRybyB2ZXJ0aWNhbC5cbiAgaWYgKHByb3BzLiRhbGlnblN0YXJ0KSByZXR1cm4gJ2ZsZXgtc3RhcnQnXG4gIGlmIChwcm9wcy4kZmxvYXRpbmdDdXN0b21DZW50ZXIgfHwgcHJvcHMuJGNlbnRlclZlcnRpY2FsbHkpIHJldHVybiAnc2FmZSBjZW50ZXInXG4gIGlmIChwcm9wcy5zaG93RkFRcyB8fCBwcm9wcy4kaXNBZ2VudFZpZXcpIHJldHVybiAnZmxleC1zdGFydCdcbiAgcmV0dXJuICdjZW50ZXInXG59XG5cbmZ1bmN0aW9uIGp1c3RpZnlTQ0NBSUhvbWVDb250ZW50VGFsbFZpZXdwb3J0KHByb3BzOiB7XG4gICRmbG9hdGluZ0N1c3RvbUNlbnRlcj86IGJvb2xlYW5cbiAgJGNlbnRlclZlcnRpY2FsbHk/OiBib29sZWFuXG4gICRpc0FnZW50Vmlldz86IGJvb2xlYW5cbiAgJGFsaWduU3RhcnQ/OiBib29sZWFuXG59KTogc3RyaW5nIHtcbiAgaWYgKHByb3BzLiRhbGlnblN0YXJ0KSByZXR1cm4gJ2ZsZXgtc3RhcnQnXG4gIGlmIChwcm9wcy4kZmxvYXRpbmdDdXN0b21DZW50ZXIgfHwgcHJvcHMuJGNlbnRlclZlcnRpY2FsbHkpIHJldHVybiAnc2FmZSBjZW50ZXInXG4gIGlmIChwcm9wcy4kaXNBZ2VudFZpZXcpIHJldHVybiAnZmxleC1zdGFydCdcbiAgcmV0dXJuICdjZW50ZXInXG59XG5cbmNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCByZWNlbnRDb250ZXh0TG9hZGluZyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaG93RkFRcz86IGJvb2xlYW47ICRhbGlnblN0YXJ0PzogYm9vbGVhbiB9PmBcbiAgZmxleDogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIENvbHVtbmEgY2VudHJhZGEgaG9yaXpvbnRhbG1lbnRlOyBwb3IgZGVmZWN0byBhbmNsYWRvIGFycmliYSAobm8gY2VudHJhciB2ZXJ0aWNhbG1lbnRlKS4gKi9cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC41cyBlYXNlLW91dDtcblxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6IDEwMDBweCkge1xuICAgIC8qIFNvbG8gaG9tZXMgbm8tc2VjdGlvbiBwdWVkZW4gY2VudHJhciBlbiB2aWV3cG9ydHMgbXV5IGFsdG9zOyBzZWN0aW9uIHF1ZWRhIGFycmliYS4gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnblN0YXJ0ID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBzaG93RkFRcz86IGJvb2xlYW5cbiAgJGlzQWdlbnRWaWV3PzogYm9vbGVhblxuICAkZmxvYXRpbmdDdXN0b21DZW50ZXI/OiBib29sZWFuXG4gICRjZW50ZXJWZXJ0aWNhbGx5PzogYm9vbGVhblxuICAkYWxpZ25TdGFydD86IGJvb2xlYW5cbiAgJGZpeGVkQ29udGVudFdpZHRoPzogbnVtYmVyXG59PmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMDtcbiAgYWxpZ24taXRlbXM6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnblN0YXJ0ID8gJ3N0cmV0Y2gnIDogJ2NlbnRlcicpfTtcbiAgZ2FwOiAwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy4kZml4ZWRDb250ZW50V2lkdGggPyBgJHtwcm9wcy4kZml4ZWRDb250ZW50V2lkdGh9cHhgIDogJzg2NHB4Jyl9O1xuICAvKiBObyB1c2FyIHN0cmV0Y2g6IGNvbiBtYXgtd2lkdGggZW4gZnVsbHNjcmVlbiBlbCBibG9xdWUgcXVlZGEgYSBsYSBpenF1aWVyZGEuICovXG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGp1c3RpZnktY29udGVudDogJHtqdXN0aWZ5U0NDQUlIb21lQ29udGVudE1haW59O1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICR7cHJvcHMgPT4gcHJvcHMuc2hvd0ZBUXMgJiYgJ292ZXJmbG93LXk6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsnfVxuICAke3Byb3BzID0+IHtcbiAgICBpZiAocHJvcHMuJGZpeGVkQ29udGVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogJHtwcm9wcy4kYWxpZ25TdGFydCA/ICdzdHJldGNoJyA6ICdmbGV4LXN0YXJ0J307XG4gICAgICBgXG4gICAgfVxuICAgIHJldHVybiAhcHJvcHMuc2hvd0ZBUXMgJiYgIXByb3BzLiRhbGlnblN0YXJ0ID8gJ3BhZGRpbmc6IDAgMTZweDsnIDogJydcbiAgfX1cblxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6IDEwMDBweCkge1xuICAgIGp1c3RpZnktY29udGVudDogJHtqdXN0aWZ5U0NDQUlIb21lQ29udGVudFRhbGxWaWV3cG9ydH07XG4gICAgcGFkZGluZzogJHtwcm9wcyA9PiAocHJvcHMuJGZpeGVkQ29udGVudFdpZHRoIHx8IHByb3BzLiRhbGlnblN0YXJ0ID8gJzAnIDogJzAgMTZweCcpfTtcbiAgICAvKiBTZWN0aW9uIGhvbWUgeSBwbGFubmVyIG1hbnRpZW5lbiBmbGV4IHBhcmEgb2N1cGFyIGFsdG87IGVsIHJlc3RvIG5vIHNlIGVzdGlyYS4gKi9cbiAgICBmbGV4OiAke3Byb3BzID0+IChwcm9wcy4kY2VudGVyVmVydGljYWxseSB8fCBwcm9wcy4kYWxpZ25TdGFydCA/ICcxIDEgYXV0bycgOiAnMCAxIGF1dG8nKX07XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUNvbnRlbnRJbm5lciA9IHN0eWxlZC5kaXY8e1xuICBzaG93RkFRcz86IGJvb2xlYW5cbiAgJGlzQWdlbnRWaWV3PzogYm9vbGVhblxuICAkZmxvYXRpbmdDdXN0b21DZW50ZXI/OiBib29sZWFuXG4gICRjZW50ZXJWZXJ0aWNhbGx5PzogYm9vbGVhblxuICAkYWxpZ25TdGFydD86IGJvb2xlYW5cbiAgJGhlYWRlckNvbGxhYm9yYXRvckhvbWU/OiBib29sZWFuXG4gICRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZT86IGJvb2xlYW5cbn0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHtcbiAgICBpZiAocHJvcHMuJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lKSByZXR1cm4gJzMycHggMCdcbiAgICBpZiAocHJvcHMuJGhlYWRlckNvbGxhYm9yYXRvckhvbWUpIHJldHVybiAnNTBweCAwIDE2cHggMCdcbiAgICByZXR1cm4gcHJvcHMuc2hvd0ZBUXMgPyAnMTZweCcgOiAnMCdcbiAgfX07XG4gIGFsaWduLWl0ZW1zOiAke3Byb3BzID0+IChwcm9wcy4kYWxpZ25TdGFydCA/ICdzdHJldGNoJyA6ICdjZW50ZXInKX07XG4gIGdhcDogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gICR7cHJvcHMgPT4gKHByb3BzLnNob3dGQVFzIHx8IHByb3BzLiRjZW50ZXJWZXJ0aWNhbGx5IHx8IHByb3BzLiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSkgJiYgJ21pbi1oZWlnaHQ6IDEwMCU7J31cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+IHtcbiAgICBpZiAocHJvcHMuJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lIHx8IHByb3BzLiRhbGlnblN0YXJ0KSByZXR1cm4gJ2ZsZXgtc3RhcnQnXG4gICAgaWYgKHByb3BzLiRjZW50ZXJWZXJ0aWNhbGx5KSByZXR1cm4gJ3NhZmUgY2VudGVyJ1xuICAgIHJldHVybiBwcm9wcy5zaG93RkFRcyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInXG4gIH19O1xuICAvKiBDZW50cmFkbyBlbiB2aWV3cG9ydCBjb21wbGV0bzsgZW4gcGFuZWwgZmxvdGFudGUgKyBjdXN0b20gZWwgcGFkcmUgY2VudHJhIGNvbiBmbGV4ICg1MHZoIG5vIGFwbGljYSBhbCBwYW5lbCkuXG4gICAgIEN1YW5kbyBoYXkgRlVBcy9GQVFzIChzaG93RkFRcykgZWwgbGF5b3V0IGVzIHNjcm9sbGFibGUgeSBzZSBhbmNsYSBhcnJpYmEsIHNpbiBuZWNlc2lkYWQgZGUgbWFyZ2luLXRvcC5cbiAgICAgUGxhbm5lciAoJGNlbnRlclZlcnRpY2FsbHkpIGNlbnRyYSB0w610dWxvICsgRlVBcyBlbiBlbCBhbHRvIGRpc3BvbmlibGUuXG4gICAgIFNlY3Rpb24gb3JjaGVzdHJhdG9yICgkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWUpIHNpZW1wcmUgdG9wLiAqL1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHtcbiAgICBpZiAocHJvcHMuJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lIHx8IHByb3BzLiRmbG9hdGluZ0N1c3RvbUNlbnRlciB8fCBwcm9wcy4kY2VudGVyVmVydGljYWxseSB8fCBwcm9wcy5zaG93RkFRcykge1xuICAgICAgcmV0dXJuICcwJ1xuICAgIH1cbiAgICByZXR1cm4gcHJvcHMuJGlzQWdlbnRWaWV3ID8gJ2NhbGMoNTB2aCAtIDgwcHggLSAxNnB4IC0gNTZweCknIDogJzAnXG4gIH19O1xuXG4gIEBtZWRpYSAobWluLWhlaWdodDogMTAwMHB4KSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gICR7KHsgJGFsaWduU3RhcnQgfSkgPT5cbiAgICAkYWxpZ25TdGFydCAmJlxuICAgIGNzc2BcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbiA9IHN0eWxlZC5kaXY8eyAkZ3Jvdz86IGJvb2xlYW47ICRhbGlnblN0YXJ0PzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnblN0YXJ0ID8gJ3N0cmV0Y2gnIDogJ2NlbnRlcicpfTtcbiAgZ2FwOiAyNHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgJHsoeyAkZ3JvdyB9KSA9PiAkZ3JvdyAmJiAnZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDA7J31cbiAgJHsoeyAkYWxpZ25TdGFydCB9KSA9PlxuICAgICRhbGlnblN0YXJ0ICYmXG4gICAgY3NzYFxuICAgICAgJiA+ICoge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUxvYWRpbmdPdmVybGF5ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUdyYWRpZW50VG9wID0gc3R5bGVkLmRpdjx7ICRzaG93OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNjBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIGJvdHRvbSxcbiAgICAjZmZmZmZmIDAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDcwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCVcbiAgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy4kc2hvdyA/IDEgOiAwKX07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lR3JhZGllbnRCb3R0b20gPSBzdHlsZWQuZGl2PHsgJHNob3c6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gdG9wLFxuICAgICNmZmZmZmYgMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDMwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgNzAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxuICApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTA7XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRzaG93ID8gMSA6IDApfTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NjRweDtcbiAgbWFyZ2luOiAwIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVIZWFkZXIgPSBzdHlsZWQuZGl2PHtcbiAgJGdhcD86IHN0cmluZ1xuICAkbWF4V2lkdGg/OiBzdHJpbmdcbiAgJGlzQWdlbnRWaWV3PzogYm9vbGVhblxuICAkYWxpZ24/OiAnY2VudGVyJyB8ICdzdGFydCdcbn0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6ICR7cHJvcHMgPT4gcHJvcHMuJGdhcCB8fCAnMjBweCd9O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuJGFsaWduID09PSAnc3RhcnQnID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgbWF4LXdpZHRoOiAke3Byb3BzID0+IHByb3BzLiRtYXhXaWR0aCB8fCAnMTAwJSd9O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PiAocHJvcHMuJGFsaWduID09PSAnc3RhcnQnIHx8IHByb3BzLiRpc0FnZW50VmlldyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbi8qKiBIZWFkZXIgTUFJQSAoaXNvbG9nbyArIHNhbHVkbyk6IGdhcCAwIHNpIG5vIGhheSB0ZXh0byBkZSBzYWx1ZG8gKi9cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2sgPSBzdHlsZWQuZGl2PHsgJG5vR2FwPzogYm9vbGVhbjsgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogJHtwID0+IChwLiRhbGlnbiA9PT0gJ3N0YXJ0JyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG4gIGFsaWduLXNlbGY6ICR7cCA9PiAocC4kYWxpZ24gPT09ICdzdGFydCcgPyAnc3RyZXRjaCcgOiAnYXV0bycpfTtcbiAgd2lkdGg6ICR7cCA9PiAocC4kYWxpZ24gPT09ICdzdGFydCcgPyAnMTAwJScgOiAnYXV0bycpfTtcbiAgZ2FwOiAke3AgPT4gKHAuJG5vR2FwID8gMCA6ICc4cHgnKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVHcmVldGluZyA9IHN0eWxlZC5zcGFuPHtcbiAgJHRydW5jYXRlPzogYm9vbGVhblxuICAkYWxpZ24/OiAnY2VudGVyJyB8ICdzdGFydCdcbiAgJHNpemU/OiAnbWQnIHwgJ2xnJ1xufT5gXG4gIGZvbnQtc2l6ZTogJHsoeyAkc2l6ZSB9KSA9PiAoJHNpemUgPT09ICdtZCcgPyAnMTZweCcgOiAnMjBweCcpfTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gIGxpbmUtaGVpZ2h0OiAkeyh7ICRzaXplIH0pID0+ICgkc2l6ZSA9PT0gJ21kJyA/ICcyNHB4JyA6ICcxMjIlJyl9O1xuICB0ZXh0LWFsaWduOiAke3Byb3BzID0+IChwcm9wcy4kYWxpZ24gPT09ICdzdGFydCcgPyAnbGVmdCcgOiAnY2VudGVyJyl9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICR7cHJvcHMgPT4gcHJvcHMuJGFsaWduID09PSAnc3RhcnQnICYmICdhbGlnbi1zZWxmOiBzdHJldGNoOyd9XG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kdHJ1bmNhdGUgJiZcbiAgICBgXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVUaXRsZSA9IHN0eWxlZC5zcGFuPHtcbiAgJHNpemU/OiAnbGcnIHwgJ21kJyB8ICdjb250ZXh0J1xuICAkYWxpZ24/OiAnY2VudGVyJyB8ICdzdGFydCdcbiAgJGZ1bGxXaWR0aD86IGJvb2xlYW5cbn0+YFxuICBtYXgtd2lkdGg6ICR7KHsgJHNpemUsICRmdWxsV2lkdGggfSkgPT4ge1xuICAgIGlmICgkZnVsbFdpZHRoKSByZXR1cm4gJzEwMCUnXG4gICAgaWYgKCRzaXplID09PSAnbWQnIHx8ICRzaXplID09PSAnY29udGV4dCcpIHJldHVybiAnMzIwcHgnXG4gICAgcmV0dXJuICc0MzJweCdcbiAgfX07XG4gIGNvbG9yOiAjMjAyMDFmO1xuICB0ZXh0LWFsaWduOiAkeyh7ICRhbGlnbiB9KSA9PiAoJGFsaWduID09PSAnc3RhcnQnID8gJ2xlZnQnIDogJ2NlbnRlcicpfTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6ICR7KHsgJHNpemUgfSkgPT4ge1xuICAgIGlmICgkc2l6ZSA9PT0gJ21kJykgcmV0dXJuICcxNnB4J1xuICAgIGlmICgkc2l6ZSA9PT0gJ2NvbnRleHQnKSByZXR1cm4gJzIwcHgnXG4gICAgcmV0dXJuICcyOHB4J1xuICB9fTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogJHsoeyAkc2l6ZSB9KSA9PiB7XG4gICAgaWYgKCRzaXplID09PSAnbWQnKSByZXR1cm4gJzI0cHgnXG4gICAgaWYgKCRzaXplID09PSAnY29udGV4dCcpIHJldHVybiAnMjRweCdcbiAgICByZXR1cm4gJzMycHgnXG4gIH19O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuLyoqIEJsb3F1ZSB0w610dWxvICsgYmFqYWRhIChGaWdtYSBUaXRsZSk6IGdhcCAwIGVudHJlIGFtYm9zLiAqL1xuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVRpdGxlQmxvY2sgPSBzdHlsZWQuZGl2PHsgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnOyAkZnVsbFdpZHRoPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiAkeyh7ICRhbGlnbiB9KSA9PiAoJGFsaWduID09PSAnc3RhcnQnID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgZ2FwOiAwO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBtYXgtd2lkdGg6ICR7KHsgJGZ1bGxXaWR0aCB9KSA9PiAoJGZ1bGxXaWR0aCA/ICcxMDAlJyA6ICczMjBweCcpfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVN1YnRpdGxlID0gc3R5bGVkLnNwYW48eyAkYWxpZ24/OiAnY2VudGVyJyB8ICdzdGFydCc7ICRjb2xsYWJvcmF0b3JIb21lPzogYm9vbGVhbiB9PmBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgY29sb3I6ICM0ZDRkNGQ7XG4gIHRleHQtYWxpZ246ICR7KHsgJGFsaWduIH0pID0+ICgkYWxpZ24gPT09ICdzdGFydCcgPyAnbGVmdCcgOiAnY2VudGVyJyl9O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgJHsoeyAkY29sbGFib3JhdG9ySG9tZSB9KSA9PlxuICAgICRjb2xsYWJvcmF0b3JIb21lICYmXG4gICAgYFxuICAgICYmIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIH1cbiAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUFnZW50SW5mbyA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDExNSU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lSW50cm9kdWN0aW9uID0gc3R5bGVkLnNwYW48eyBleHBhbmRlZD86IGJvb2xlYW4gfT5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuICBtYXgtd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLmV4cGFuZGVkID8gJzQ4MnB4JyA6ICczNjBweCcpfTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVIb3dJdFdvcmtzID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjNmYzM2EwO1xuICBmb250LWZhbWlseTogV29yayBTYW5zO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjYWE2ZWRlO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyA9IHN0eWxlZC5kaXY8eyAkZml4ZWRDb250ZW50V2lkdGg/OiBudW1iZXI7ICRjb250ZW50R2FwPzogbnVtYmVyIH0+YFxuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogJHtwcm9wcyA9PiBwcm9wcy4kY29udGVudEdhcCA/PyAxMn1weDtcbiAgbWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy4kZml4ZWRDb250ZW50V2lkdGggPyAnMTAwJScgOiAnNDMycHgnKX07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBjb2xvcjogIzIwMjAyMDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgY29sb3I6ICM4MDgwODA7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICM0ZDRkNGQ7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0ID0gc3R5bGVkLmRpdjx7ICRmbHVzaFBpbGxzPzogYm9vbGVhbiB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiAocHJvcHMuJGZsdXNoUGlsbHMgPyAnMCcgOiAnMCA2cHgnKX07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCA9IHN0eWxlZC5idXR0b248eyAkZnVsbFdpZHRoPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZ2FwOiA0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLiRmdWxsV2lkdGggPyAnMTAwJScgOiAnNDM4cHgnKX07XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbWluLXdpZHRoOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNHMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMjAyMDIwO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQzOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQyLCAyNDIsIDI0MiwgMSk7XG4gIGFuaW1hdGlvbjogJHtyZWNlbnRDb250ZXh0TG9hZGluZ30gMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVFBQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVFBVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNnB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUUFUaXRsZVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogJHtWSU9MRVRfSUFfQ09MT1JTWzUwMF19O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUUFJdGVtID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUUFJdGVtVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2IoMTAyLCAxMDIsIDEwMik7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkUUFDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAzNnB4O1xuICBmbGV4OiAxO1xuXG4gIC5DaGF0QUlIb21lLXFhLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICR7R0xPQkFMX0NPTE9SUy5wcmltYXJ5fTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gIH1cblxuICAuQ2hhdEFJSG9tZS1xYS1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuXG4gICAgLkNoYXRBSUhvbWUtcWEtaXRlbSB7XG4gICAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5zZWNvbmRhcnl9O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogNnB4O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0MiwgMjQyLCAyNDIsIDEpO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MzJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOlxuICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLWluLW91dCxcbiAgICB0cmFuc2Zvcm0gMC4xcyBlYXNlLWluLW91dDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGdhcDogMTJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUNyZWF0ZWRCeUxpbmUgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXN0eWxlOiBpdGFsaWM7XG5gXG5cbmNvbnN0IGdyYWRpZW50UHVsc2UxID0ga2V5ZnJhbWVzYFxuICAwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjg1KTtcbiAgfVxuYFxuXG5jb25zdCBncmFkaWVudFB1bHNlMiA9IGtleWZyYW1lc2BcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjg1KTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XG4gIH1cbmBcbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVHcmFkaWVudDEgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg1MCUgNTAlIGF0IDUwJSAxMDAlLCAjZmZmZmYgMCUsICNmZmZmZmYgMTAwJSk7XG4gIGZpbHRlcjogYmx1cigyNXB4KTtcbiAgYW5pbWF0aW9uOiAke2dyYWRpZW50UHVsc2UxfSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgei1pbmRleDogMDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUdyYWRpZW50MiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDUwJSA1MCUgYXQgNTAlIDEwMCUsICNmZmZmZmYgMCUsICNmZmZmZmYgMTAwJSk7XG4gIGZpbHRlcjogYmx1cigyNXB4KTtcbiAgYW5pbWF0aW9uOiAke2dyYWRpZW50UHVsc2UyfSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgei1pbmRleDogMDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUxvZ29XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELFNBQVNDLGFBQWEsRUFBRUMsZ0JBQWdCLFFBQVEsd0JBQXdCOztBQUV4RTtBQUNBLE9BQU8sSUFBTUMsOENBQThDLEdBQUcsR0FBRztBQUVqRSxTQUFTQywyQkFBMkJBLENBQUNDLEtBTXBDLEVBQVU7RUFDVDtFQUNBLElBQUlBLEtBQUssQ0FBQ0MsV0FBVyxFQUFFLE9BQU8sWUFBWTtFQUMxQyxJQUFJRCxLQUFLLENBQUNFLHFCQUFxQixJQUFJRixLQUFLLENBQUNHLGlCQUFpQixFQUFFLE9BQU8sYUFBYTtFQUNoRixJQUFJSCxLQUFLLENBQUNJLFFBQVEsSUFBSUosS0FBSyxDQUFDSyxZQUFZLEVBQUUsT0FBTyxZQUFZO0VBQzdELE9BQU8sUUFBUTtBQUNqQjtBQUVBLFNBQVNDLG1DQUFtQ0EsQ0FBQ04sS0FLNUMsRUFBVTtFQUNULElBQUlBLEtBQUssQ0FBQ0MsV0FBVyxFQUFFLE9BQU8sWUFBWTtFQUMxQyxJQUFJRCxLQUFLLENBQUNFLHFCQUFxQixJQUFJRixLQUFLLENBQUNHLGlCQUFpQixFQUFFLE9BQU8sYUFBYTtFQUNoRixJQUFJSCxLQUFLLENBQUNLLFlBQVksRUFBRSxPQUFPLFlBQVk7RUFDM0MsT0FBTyxRQUFRO0FBQ2pCO0FBRUEsSUFBTUUsTUFBTSxHQUFHYixTQUFTLG9DQU92QjtBQUVELElBQU1jLG9CQUFvQixHQUFHZCxTQUFTLDREQVVyQztBQUVELE9BQU8sSUFBTWUsa0JBQWtCLEdBQUdqQixNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFB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
342
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwiVklPTEVUX0lBX0NPTE9SUyIsIk1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFgiLCJqdXN0aWZ5U0NDQUlIb21lQ29udGVudE1haW4iLCJwcm9wcyIsIiRhbGlnblN0YXJ0IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGNlbnRlclZlcnRpY2FsbHkiLCJzaG93RkFRcyIsIiRpc0FnZW50VmlldyIsImp1c3RpZnlTQ0NBSUhvbWVDb250ZW50VGFsbFZpZXdwb3J0IiwiZmFkZUluIiwicmVjZW50Q29udGV4dExvYWRpbmciLCJTQ0NBSUhvbWVDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQ0FJSG9tZVNjcm9sbCIsIl9yZWYiLCIkc2Nyb2xsYWJsZSIsIlNDQ0FJSG9tZUNvbnRlbnQiLCIkZml4ZWRDb250ZW50V2lkdGgiLCJjb25jYXQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCIkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWUiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIl9yZWYyIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJfcmVmMyIsIiRncm93IiwiX3JlZjQiLCJTQ0NBSUhvbWVMb2FkaW5nT3ZlcmxheSIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiJHNob3ciLCJTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSIsIlNDQ0FJSG9tZUhlYWRlciIsIiRnYXAiLCIkYWxpZ24iLCIkbWF4V2lkdGgiLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2siLCJwIiwiJG5vR2FwIiwiU0NDQUlIb21lR3JlZXRpbmciLCJzcGFuIiwiX3JlZjUiLCIkc2l6ZSIsIl9yZWY2IiwiJHRydW5jYXRlIiwiU0NDQUlIb21lVGl0bGUiLCJfcmVmNyIsIiRmdWxsV2lkdGgiLCJfcmVmOCIsIl9yZWY5IiwiX3JlZjAiLCJTQ0NBSUhvbWVUaXRsZUJsb2NrIiwiX3JlZjEiLCJfcmVmMTAiLCJTQ0NBSUhvbWVTdWJ0aXRsZSIsIl9yZWYxMSIsIl9yZWYxMiIsIiRjb2xsYWJvcmF0b3JIb21lIiwiU0NDQUlIb21lQWdlbnRJbmZvIiwiU0NDQUlIb21lSW50cm9kdWN0aW9uIiwiZXhwYW5kZWQiLCJTQ0NBSUhvbWVIb3dJdFdvcmtzIiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnkiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlIiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzIiwiX3Byb3BzJCRjb250ZW50R2FwIiwiJGNvbnRlbnRHYXAiLCJTQ0NBSUhvbWVDb2xsYWJvcmF0b3JTZWN0aW9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uSGVhZGVyIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZSIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzVGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QiLCIkZmx1c2hQaWxscyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsIiwiYnV0dG9uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0IiwiU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbiIsIlNDQ0FJSG9tZVFBQ29udGFpbmVyIiwiU0NDQUlIb21lUUFUaXRsZSIsIlNDQ0FJSG9tZVFBVGl0bGVUZXh0IiwiU0NDQUlIb21lUUFJdGVtIiwiU0NDQUlIb21lUUFJdGVtVGV4dCIsIlN0eWxlZFFBQ29udGFpbmVyIiwicHJpbWFyeSIsInRleHQiLCJzZWNvbmRhcnkiLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUxpbmUiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJncmFkaWVudFB1bHNlMSIsImdyYWRpZW50UHVsc2UyIiwiU0NDQUlIb21lSWNvbkNvbnRhaW5lciIsIlNDQ0FJSG9tZUdyYWRpZW50MSIsIlNDQ0FJSG9tZUdyYWRpZW50MiIsIlNDQ0FJSG9tZUxvZ29XcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5pbXBvcnQgeyBHTE9CQUxfQ09MT1JTLCBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcblxuLyoqIEFuY2hvIGRlbCBjb250ZW5pZG8gSE9NRSBjb2xhYm9yYWRvciAoaGVhZGVyKSB5IHNlY3Rpb24gb3JjaGVzdHJhdG9yIChwcm9qZWN0L2NsaWVudC90YXNrKS4gKi9cbmV4cG9ydCBjb25zdCBNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYID0gNDQ4XG5cbmZ1bmN0aW9uIGp1c3RpZnlTQ0NBSUhvbWVDb250ZW50TWFpbihwcm9wczoge1xuICAkZmxvYXRpbmdDdXN0b21DZW50ZXI/OiBib29sZWFuXG4gICRjZW50ZXJWZXJ0aWNhbGx5PzogYm9vbGVhblxuICBzaG93RkFRcz86IGJvb2xlYW5cbiAgJGlzQWdlbnRWaWV3PzogYm9vbGVhblxuICAkYWxpZ25TdGFydD86IGJvb2xlYW5cbn0pOiBzdHJpbmcge1xuICAvLyBTZWN0aW9uIGhvbWUgKHByb2plY3QvY2xpZW50L3Rhc2spOiBzaWVtcHJlIGFycmliYS4gUGxhbm5lcjogY2VudHJvIHZlcnRpY2FsLlxuICBpZiAocHJvcHMuJGFsaWduU3RhcnQpIHJldHVybiAnZmxleC1zdGFydCdcbiAgaWYgKHByb3BzLiRmbG9hdGluZ0N1c3RvbUNlbnRlciB8fCBwcm9wcy4kY2VudGVyVmVydGljYWxseSkgcmV0dXJuICdzYWZlIGNlbnRlcidcbiAgaWYgKHByb3BzLnNob3dGQVFzIHx8IHByb3BzLiRpc0FnZW50VmlldykgcmV0dXJuICdmbGV4LXN0YXJ0J1xuICByZXR1cm4gJ2NlbnRlcidcbn1cblxuZnVuY3Rpb24ganVzdGlmeVNDQ0FJSG9tZUNvbnRlbnRUYWxsVmlld3BvcnQocHJvcHM6IHtcbiAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPzogYm9vbGVhblxuICAkY2VudGVyVmVydGljYWxseT86IGJvb2xlYW5cbiAgJGlzQWdlbnRWaWV3PzogYm9vbGVhblxuICAkYWxpZ25TdGFydD86IGJvb2xlYW5cbn0pOiBzdHJpbmcge1xuICBpZiAocHJvcHMuJGFsaWduU3RhcnQpIHJldHVybiAnZmxleC1zdGFydCdcbiAgaWYgKHByb3BzLiRmbG9hdGluZ0N1c3RvbUNlbnRlciB8fCBwcm9wcy4kY2VudGVyVmVydGljYWxseSkgcmV0dXJuICdzYWZlIGNlbnRlcidcbiAgaWYgKHByb3BzLiRpc0FnZW50VmlldykgcmV0dXJuICdmbGV4LXN0YXJ0J1xuICByZXR1cm4gJ2NlbnRlcidcbn1cblxuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IHJlY2VudENvbnRleHRMb2FkaW5nID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuODU7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ29udGFpbmVyID0gc3R5bGVkLmRpdjx7IHNob3dGQVFzPzogYm9vbGVhbjsgJGFsaWduU3RhcnQ/OiBib29sZWFuIH0+YFxuICBmbGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogQ29sdW1uYSBjZW50cmFkYSBob3Jpem9udGFsbWVudGU7IHBvciBkZWZlY3RvIGFuY2xhZG8gYXJyaWJhIChubyBjZW50cmFyIHZlcnRpY2FsbWVudGUpLiAqL1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC41cyBlYXNlLW91dDtcblxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6IDEwMDBweCkge1xuICAgIC8qIFNvbG8gaG9tZXMgbm8tc2VjdGlvbiBwdWVkZW4gY2VudHJhciBlbiB2aWV3cG9ydHMgbXV5IGFsdG9zOyBzZWN0aW9uIHF1ZWRhIGFycmliYS4gKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnblN0YXJ0ID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbiAgfVxuYFxuXG4vKiogU2Nyb2xsZXIgYSBhbmNobyBjb21wbGV0bzogZW4gZnVsbHNjcmVlbiBlbCB3aGVlbCBlbiBsb3MgbcOhcmdlbmVzIGRlYmUgbW92ZXIgZWwgaG9tZSwgbm8gZWwgYm9keS4gKi9cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVTY3JvbGwgPSBzdHlsZWQuZGl2PHsgJHNjcm9sbGFibGU/OiBib29sZWFuIH0+YFxuICBmbGV4OiAxIDEgMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAkeyh7ICRzY3JvbGxhYmxlIH0pID0+XG4gICAgJHNjcm9sbGFibGUgJiZcbiAgICBjc3NgXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDb250ZW50ID0gc3R5bGVkLmRpdjx7XG4gIHNob3dGQVFzPzogYm9vbGVhblxuICAkaXNBZ2VudFZpZXc/OiBib29sZWFuXG4gICRmbG9hdGluZ0N1c3RvbUNlbnRlcj86IGJvb2xlYW5cbiAgJGNlbnRlclZlcnRpY2FsbHk/OiBib29sZWFuXG4gICRhbGlnblN0YXJ0PzogYm9vbGVhblxuICAkZml4ZWRDb250ZW50V2lkdGg/OiBudW1iZXJcbn0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuJGFsaWduU3RhcnQgPyAnc3RyZXRjaCcgOiAnY2VudGVyJyl9O1xuICBnYXA6IDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLiRmaXhlZENvbnRlbnRXaWR0aCA/IGAke3Byb3BzLiRmaXhlZENvbnRlbnRXaWR0aH1weGAgOiAnODY0cHgnKX07XG4gIC8qIE5vIHVzYXIgc3RyZXRjaDogY29uIG1heC13aWR0aCBlbiBmdWxsc2NyZWVuIGVsIGJsb3F1ZSBxdWVkYSBhIGxhIGl6cXVpZXJkYS4gKi9cbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDAgYXV0bztcbiAganVzdGlmeS1jb250ZW50OiAke2p1c3RpZnlTQ0NBSUhvbWVDb250ZW50TWFpbn07XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJHtwcm9wcyA9PiB7XG4gICAgaWYgKHByb3BzLiRmaXhlZENvbnRlbnRXaWR0aCkge1xuICAgICAgcmV0dXJuIGBcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR7cHJvcHMuJGFsaWduU3RhcnQgPyAnc3RyZXRjaCcgOiAnZmxleC1zdGFydCd9O1xuICAgICAgYFxuICAgIH1cbiAgICByZXR1cm4gIXByb3BzLnNob3dGQVFzICYmICFwcm9wcy4kYWxpZ25TdGFydCA/ICdwYWRkaW5nOiAwIDE2cHg7JyA6ICcnXG4gIH19XG5cbiAgQG1lZGlhIChtaW4taGVpZ2h0OiAxMDAwcHgpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR7anVzdGlmeVNDQ0FJSG9tZUNvbnRlbnRUYWxsVmlld3BvcnR9O1xuICAgIHBhZGRpbmc6ICR7cHJvcHMgPT4gKHByb3BzLiRmaXhlZENvbnRlbnRXaWR0aCB8fCBwcm9wcy4kYWxpZ25TdGFydCA/ICcwJyA6ICcwIDE2cHgnKX07XG4gICAgLyogU2VjdGlvbiBob21lIHkgcGxhbm5lciBtYW50aWVuZW4gZmxleCBwYXJhIG9jdXBhciBhbHRvOyBlbCByZXN0byBubyBzZSBlc3RpcmEuICovXG4gICAgZmxleDogJHtwcm9wcyA9PiAocHJvcHMuJGNlbnRlclZlcnRpY2FsbHkgfHwgcHJvcHMuJGFsaWduU3RhcnQgPyAnMSAxIGF1dG8nIDogJzAgMSBhdXRvJyl9O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDb250ZW50SW5uZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2hvd0ZBUXM/OiBib29sZWFuXG4gICRpc0FnZW50Vmlldz86IGJvb2xlYW5cbiAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPzogYm9vbGVhblxuICAkY2VudGVyVmVydGljYWxseT86IGJvb2xlYW5cbiAgJGFsaWduU3RhcnQ/OiBib29sZWFuXG4gICRoZWFkZXJDb2xsYWJvcmF0b3JIb21lPzogYm9vbGVhblxuICAkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWU/OiBib29sZWFuXG59PmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiB7XG4gICAgaWYgKHByb3BzLiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSkgcmV0dXJuICczMnB4IDAnXG4gICAgaWYgKHByb3BzLiRoZWFkZXJDb2xsYWJvcmF0b3JIb21lKSByZXR1cm4gJzUwcHggMCAxNnB4IDAnXG4gICAgcmV0dXJuIHByb3BzLnNob3dGQVFzID8gJzE2cHgnIDogJzAnXG4gIH19O1xuICBhbGlnbi1pdGVtczogJHtwcm9wcyA9PiAocHJvcHMuJGFsaWduU3RhcnQgPyAnc3RyZXRjaCcgOiAnY2VudGVyJyl9O1xuICBnYXA6IDEycHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICAke3Byb3BzID0+IChwcm9wcy5zaG93RkFRcyB8fCBwcm9wcy4kY2VudGVyVmVydGljYWxseSB8fCBwcm9wcy4kc2VjdGlvbk9yY2hlc3RyYXRvckhvbWUpICYmICdtaW4taGVpZ2h0OiAxMDAlOyd9XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PiB7XG4gICAgaWYgKHByb3BzLiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSB8fCBwcm9wcy4kYWxpZ25TdGFydCkgcmV0dXJuICdmbGV4LXN0YXJ0J1xuICAgIGlmIChwcm9wcy4kY2VudGVyVmVydGljYWxseSkgcmV0dXJuICdzYWZlIGNlbnRlcidcbiAgICByZXR1cm4gcHJvcHMuc2hvd0ZBUXMgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJ1xuICB9fTtcbiAgLyogQ2VudHJhZG8gZW4gdmlld3BvcnQgY29tcGxldG87IGVuIHBhbmVsIGZsb3RhbnRlICsgY3VzdG9tIGVsIHBhZHJlIGNlbnRyYSBjb24gZmxleCAoNTB2aCBubyBhcGxpY2EgYWwgcGFuZWwpLlxuICAgICBDdWFuZG8gaGF5IEZVQXMvRkFRcyAoc2hvd0ZBUXMpIGVsIGxheW91dCBlcyBzY3JvbGxhYmxlIHkgc2UgYW5jbGEgYXJyaWJhLCBzaW4gbmVjZXNpZGFkIGRlIG1hcmdpbi10b3AuXG4gICAgIFBsYW5uZXIgKCRjZW50ZXJWZXJ0aWNhbGx5KSBjZW50cmEgdMOtdHVsbyArIEZVQXMgZW4gZWwgYWx0byBkaXNwb25pYmxlLlxuICAgICBTZWN0aW9uIG9yY2hlc3RyYXRvciAoJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lKSBzaWVtcHJlIHRvcC4gKi9cbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PiB7XG4gICAgaWYgKHByb3BzLiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSB8fCBwcm9wcy4kZmxvYXRpbmdDdXN0b21DZW50ZXIgfHwgcHJvcHMuJGNlbnRlclZlcnRpY2FsbHkgfHwgcHJvcHMuc2hvd0ZBUXMpIHtcbiAgICAgIHJldHVybiAnMCdcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzLiRpc0FnZW50VmlldyA/ICdjYWxjKDUwdmggLSA4MHB4IC0gMTZweCAtIDU2cHgpJyA6ICcwJ1xuICB9fTtcblxuICBAbWVkaWEgKG1pbi1oZWlnaHQ6IDEwMDBweCkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAkeyh7ICRhbGlnblN0YXJ0IH0pID0+XG4gICAgJGFsaWduU3RhcnQgJiZcbiAgICBjc3NgXG4gICAgICAmID4gKiB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lRHluYW1pY1NlY3Rpb24gPSBzdHlsZWQuZGl2PHsgJGdyb3c/OiBib29sZWFuOyAkYWxpZ25TdGFydD86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiAke3Byb3BzID0+IChwcm9wcy4kYWxpZ25TdGFydCA/ICdzdHJldGNoJyA6ICdjZW50ZXInKX07XG4gIGdhcDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gICR7KHsgJGdyb3cgfSkgPT4gJGdyb3cgJiYgJ2ZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwOyd9XG4gICR7KHsgJGFsaWduU3RhcnQgfSkgPT5cbiAgICAkYWxpZ25TdGFydCAmJlxuICAgIGNzc2BcbiAgICAgICYgPiAqIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVMb2FkaW5nT3ZlcmxheSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVHcmFkaWVudFRvcCA9IHN0eWxlZC5kaXY8eyAkc2hvdzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDYwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICB0byBib3R0b20sXG4gICAgI2ZmZmZmZiAwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgMzAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSA3MCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXG4gICk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxMDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuJHNob3cgPyAxIDogMCl9O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDg2NHB4O1xuICBtYXJnaW46IDAgYXV0bztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tID0gc3R5bGVkLmRpdjx7ICRzaG93OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNjBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIHRvcCxcbiAgICAjZmZmZmZmIDAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDcwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCVcbiAgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDEwO1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy4kc2hvdyA/IDEgOiAwKX07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lSGVhZGVyID0gc3R5bGVkLmRpdjx7XG4gICRnYXA/OiBzdHJpbmdcbiAgJG1heFdpZHRoPzogc3RyaW5nXG4gICRpc0FnZW50Vmlldz86IGJvb2xlYW5cbiAgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnXG59PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAke3Byb3BzID0+IHByb3BzLiRnYXAgfHwgJzIwcHgnfTtcbiAgYWxpZ24taXRlbXM6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnbiA9PT0gJ3N0YXJ0JyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG4gIG1heC13aWR0aDogJHtwcm9wcyA9PiBwcm9wcy4kbWF4V2lkdGggfHwgJzEwMCUnfTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRhbGlnbiA9PT0gJ3N0YXJ0JyB8fCBwcm9wcy4kaXNBZ2VudFZpZXcgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuYFxuXG4vKiogSGVhZGVyIE1BSUEgKGlzb2xvZ28gKyBzYWx1ZG8pOiBnYXAgMCBzaSBubyBoYXkgdGV4dG8gZGUgc2FsdWRvICovXG5leHBvcnQgY29uc3QgU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrID0gc3R5bGVkLmRpdjx7ICRub0dhcD86IGJvb2xlYW47ICRhbGlnbj86ICdjZW50ZXInIHwgJ3N0YXJ0JyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6ICR7cCA9PiAocC4kYWxpZ24gPT09ICdzdGFydCcgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJyl9O1xuICBhbGlnbi1zZWxmOiAke3AgPT4gKHAuJGFsaWduID09PSAnc3RhcnQnID8gJ3N0cmV0Y2gnIDogJ2F1dG8nKX07XG4gIHdpZHRoOiAke3AgPT4gKHAuJGFsaWduID09PSAnc3RhcnQnID8gJzEwMCUnIDogJ2F1dG8nKX07XG4gIGdhcDogJHtwID0+IChwLiRub0dhcCA/IDAgOiAnOHB4Jyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lR3JlZXRpbmcgPSBzdHlsZWQuc3Bhbjx7XG4gICR0cnVuY2F0ZT86IGJvb2xlYW5cbiAgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnXG4gICRzaXplPzogJ21kJyB8ICdsZydcbn0+YFxuICBmb250LXNpemU6ICR7KHsgJHNpemUgfSkgPT4gKCRzaXplID09PSAnbWQnID8gJzE2cHgnIDogJzIwcHgnKX07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuICBsaW5lLWhlaWdodDogJHsoeyAkc2l6ZSB9KSA9PiAoJHNpemUgPT09ICdtZCcgPyAnMjRweCcgOiAnMTIyJScpfTtcbiAgdGV4dC1hbGlnbjogJHtwcm9wcyA9PiAocHJvcHMuJGFsaWduID09PSAnc3RhcnQnID8gJ2xlZnQnIDogJ2NlbnRlcicpfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAke3Byb3BzID0+IHByb3BzLiRhbGlnbiA9PT0gJ3N0YXJ0JyAmJiAnYWxpZ24tc2VsZjogc3RyZXRjaDsnfVxuICAke3Byb3BzID0+XG4gICAgcHJvcHMuJHRydW5jYXRlICYmXG4gICAgYFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lVGl0bGUgPSBzdHlsZWQuc3Bhbjx7XG4gICRzaXplPzogJ2xnJyB8ICdtZCcgfCAnY29udGV4dCdcbiAgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnXG4gICRmdWxsV2lkdGg/OiBib29sZWFuXG59PmBcbiAgbWF4LXdpZHRoOiAkeyh7ICRzaXplLCAkZnVsbFdpZHRoIH0pID0+IHtcbiAgICBpZiAoJGZ1bGxXaWR0aCkgcmV0dXJuICcxMDAlJ1xuICAgIGlmICgkc2l6ZSA9PT0gJ21kJyB8fCAkc2l6ZSA9PT0gJ2NvbnRleHQnKSByZXR1cm4gJzMyMHB4J1xuICAgIHJldHVybiAnNDMycHgnXG4gIH19O1xuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogJHsoeyAkYWxpZ24gfSkgPT4gKCRhbGlnbiA9PT0gJ3N0YXJ0JyA/ICdsZWZ0JyA6ICdjZW50ZXInKX07XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAkeyh7ICRzaXplIH0pID0+IHtcbiAgICBpZiAoJHNpemUgPT09ICdtZCcpIHJldHVybiAnMTZweCdcbiAgICBpZiAoJHNpemUgPT09ICdjb250ZXh0JykgcmV0dXJuICcyMHB4J1xuICAgIHJldHVybiAnMjhweCdcbiAgfX07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6ICR7KHsgJHNpemUgfSkgPT4ge1xuICAgIGlmICgkc2l6ZSA9PT0gJ21kJykgcmV0dXJuICcyNHB4J1xuICAgIGlmICgkc2l6ZSA9PT0gJ2NvbnRleHQnKSByZXR1cm4gJzI0cHgnXG4gICAgcmV0dXJuICczMnB4J1xuICB9fTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbi8qKiBCbG9xdWUgdMOtdHVsbyArIGJhamFkYSAoRmlnbWEgVGl0bGUpOiBnYXAgMCBlbnRyZSBhbWJvcy4gKi9cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVUaXRsZUJsb2NrID0gc3R5bGVkLmRpdjx7ICRhbGlnbj86ICdjZW50ZXInIHwgJ3N0YXJ0JzsgJGZ1bGxXaWR0aD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogJHsoeyAkYWxpZ24gfSkgPT4gKCRhbGlnbiA9PT0gJ3N0YXJ0JyA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKX07XG4gIGdhcDogMDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWF4LXdpZHRoOiAkeyh7ICRmdWxsV2lkdGggfSkgPT4gKCRmdWxsV2lkdGggPyAnMTAwJScgOiAnMzIwcHgnKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVTdWJ0aXRsZSA9IHN0eWxlZC5zcGFuPHsgJGFsaWduPzogJ2NlbnRlcicgfCAnc3RhcnQnOyAkY29sbGFib3JhdG9ySG9tZT86IGJvb2xlYW4gfT5gXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGNvbG9yOiAjNGQ0ZDRkO1xuICB0ZXh0LWFsaWduOiAkeyh7ICRhbGlnbiB9KSA9PiAoJGFsaWduID09PSAnc3RhcnQnID8gJ2xlZnQnIDogJ2NlbnRlcicpfTtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICR7KHsgJGNvbGxhYm9yYXRvckhvbWUgfSkgPT5cbiAgICAkY29sbGFib3JhdG9ySG9tZSAmJlxuICAgIGBcbiAgICAmJiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB9XG4gIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVBZ2VudEluZm8gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMTUlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMTJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUludHJvZHVjdGlvbiA9IHN0eWxlZC5zcGFuPHsgZXhwYW5kZWQ/OiBib29sZWFuIH0+YFxuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKTtcbiAgbWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy5leHBhbmRlZCA/ICc0ODJweCcgOiAnMzYwcHgnKX07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogbm9ybWFsO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lSG93SXRXb3JrcyA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzZmMzNhMDtcbiAgZm9udC1mYW1pbHk6IFdvcmsgU2FucztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogI2FhNmVkZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUHJvamVjdFN1bW1hcnkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiByZ2JhKDMyLCAzMiwgMzEsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbiA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dHMgPSBzdHlsZWQuZGl2PHsgJGZpeGVkQ29udGVudFdpZHRoPzogbnVtYmVyOyAkY29udGVudEdhcD86IG51bWJlciB9PmBcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6ICR7cHJvcHMgPT4gcHJvcHMuJGNvbnRlbnRHYXAgPz8gMTJ9cHg7XG4gIG1heC13aWR0aDogJHtwcm9wcyA9PiAocHJvcHMuJGZpeGVkQ29udGVudFdpZHRoID8gJzEwMCUnIDogJzQzMnB4Jyl9O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ29sbGFib3JhdG9yU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAycHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgY29sb3I6ICMyMDIwMjA7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblN1YnRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1RpdGxlID0gc3R5bGVkLnNwYW5gXG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjNGQ0ZDRkO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCA9IHN0eWxlZC5kaXY8eyAkZmx1c2hQaWxscz86IGJvb2xlYW4gfT5gXG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gKHByb3BzLiRmbHVzaFBpbGxzID8gJzAnIDogJzAgNnB4Jyl9O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwgPSBzdHlsZWQuYnV0dG9uPHsgJGZ1bGxXaWR0aD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy4kZnVsbFdpZHRoID8gJzEwMCUnIDogJzQzOHB4Jyl9O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG1pbi13aWR0aDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzIwMjAyMDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MzhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0MiwgMjQyLCAyNDIsIDEpO1xuICBhbmltYXRpb246ICR7cmVjZW50Q29udGV4dExvYWRpbmd9IDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVRQUNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVRQVRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVFBVGl0bGVUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICR7VklPTEVUX0lBX0NPTE9SU1s1MDBdfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVFBSXRlbSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZVFBSXRlbVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogcmdiKDEwMiwgMTAyLCAxMDIpO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFFBQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMzZweDtcbiAgZmxleDogMTtcblxuICAuQ2hhdEFJSG9tZS1xYS10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiAke0dMT0JBTF9DT0xPUlMucHJpbWFyeX07XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICB9XG5cbiAgLkNoYXRBSUhvbWUtcWEtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcblxuICAgIC5DaGF0QUlIb21lLXFhLWl0ZW0ge1xuICAgICAgY29sb3I6ICR7Y29sb3JzLnRleHQuc2Vjb25kYXJ5fTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmc6IDZweDtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0ID0gc3R5bGVkLmRpdmBcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDMycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQsXG4gICAgdHJhbnNmb3JtIDAuMXMgZWFzZS1pbi1vdXQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IDEycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVDcmVhdGVkQnlMaW5lID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzk5OTk5OTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuYFxuXG5jb25zdCBncmFkaWVudFB1bHNlMSA9IGtleWZyYW1lc2BcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC44NSk7XG4gIH1cbmBcblxuY29uc3QgZ3JhZGllbnRQdWxzZTIgPSBrZXlmcmFtZXNgXG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC44NSk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU0NDQUlIb21lSWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGFzcGVjdC1yYXRpbzogMS8xO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDQUlIb21lR3JhZGllbnQxID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNTAlIDUwJSBhdCA1MCUgMTAwJSwgI2ZmZmZmIDAlLCAjZmZmZmZmIDEwMCUpO1xuICBmaWx0ZXI6IGJsdXIoMjVweCk7XG4gIGFuaW1hdGlvbjogJHtncmFkaWVudFB1bHNlMX0gM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHotaW5kZXg6IDA7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVHcmFkaWVudDIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCg1MCUgNTAlIGF0IDUwJSAxMDAlLCAjZmZmZmZmIDAlLCAjZmZmZmZmIDEwMCUpO1xuICBmaWx0ZXI6IGJsdXIoMjVweCk7XG4gIGFuaW1hdGlvbjogJHtncmFkaWVudFB1bHNlMn0gM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHotaW5kZXg6IDA7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NBSUhvbWVMb2dvV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxTQUFTQyxhQUFhLEVBQUVDLGdCQUFnQixRQUFRLHdCQUF3Qjs7QUFFeEU7QUFDQSxPQUFPLElBQU1DLDhDQUE4QyxHQUFHLEdBQUc7QUFFakUsU0FBU0MsMkJBQTJCQSxDQUFDQyxLQU1wQyxFQUFVO0VBQ1Q7RUFDQSxJQUFJQSxLQUFLLENBQUNDLFdBQVcsRUFBRSxPQUFPLFlBQVk7RUFDMUMsSUFBSUQsS0FBSyxDQUFDRSxxQkFBcUIsSUFBSUYsS0FBSyxDQUFDRyxpQkFBaUIsRUFBRSxPQUFPLGFBQWE7RUFDaEYsSUFBSUgsS0FBSyxDQUFDSSxRQUFRLElBQUlKLEtBQUssQ0FBQ0ssWUFBWSxFQUFFLE9BQU8sWUFBWTtFQUM3RCxPQUFPLFFBQVE7QUFDakI7QUFFQSxTQUFTQyxtQ0FBbUNBLENBQUNOLEtBSzVDLEVBQVU7RUFDVCxJQUFJQSxLQUFLLENBQUNDLFdBQVcsRUFBRSxPQUFPLFlBQVk7RUFDMUMsSUFBSUQsS0FBSyxDQUFDRSxxQkFBcUIsSUFBSUYsS0FBSyxDQUFDRyxpQkFBaUIsRUFBRSxPQUFPLGFBQWE7RUFDaEYsSUFBSUgsS0FBSyxDQUFDSyxZQUFZLEVBQUUsT0FBTyxZQUFZO0VBQzNDLE9BQU8sUUFBUTtBQUNqQjtBQUVBLElBQU1FLE1BQU0sR0FBR2IsU0FBUyxvQ0FPdkI7QUFFRCxJQUFNYyxvQkFBb0IsR0FBR2QsU0FBUyw0REFVckM7QUFFRCxPQUFPLElBQU1lLGtCQUFrQixHQUFHakIsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNRQWE3Qk4sTUFBTSxFQUlFLFVBQUFQLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FFNUU7O0FBRUQ7QUFDQSxPQUFPLElBQU1hLGVBQWUsR0FBR3RCLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1R0FPckMsVUFBQUUsSUFBQTtFQUFBLElBQUdDLFdBQVcsR0FBQUQsSUFBQSxDQUFYQyxXQUFXO0VBQUEsT0FDZEEsV0FBVyxJQUNYdkIsR0FBRyxvREFHRjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU13QixnQkFBZ0IsR0FBR3pCLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrUUFVekIsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ0MsV0FBVyxHQUFHLFNBQVMsR0FBRyxRQUFRO0FBQUEsQ0FBQyxFQUlyRCxVQUFBRCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDa0Isa0JBQWtCLE1BQUFDLE1BQUEsQ0FBTW5CLEtBQUssQ0FBQ2tCLGtCQUFrQixVQUFPLE9BQU87QUFBQSxDQUFDLEVBSXpFbkIsMkJBQTJCLEVBSTVDLFVBQUFDLEtBQUssRUFBSTtFQUNULElBQUlBLEtBQUssQ0FBQ2tCLGtCQUFrQixFQUFFO0lBQzVCLHVGQUFBQyxNQUFBLENBR2lCbkIsS0FBSyxDQUFDQyxXQUFXLEdBQUcsU0FBUyxHQUFHLFlBQVk7RUFFL0Q7RUFDQSxPQUFPLENBQUNELEtBQUssQ0FBQ0ksUUFBUSxJQUFJLENBQUNKLEtBQUssQ0FBQ0MsV0FBVyxHQUFHLGtCQUFrQixHQUFHLEVBQUU7QUFDeEUsQ0FBQyxFQUdvQkssbUNBQW1DLEVBQzNDLFVBQUFOLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNrQixrQkFBa0IsSUFBSWxCLEtBQUssQ0FBQ0MsV0FBVyxHQUFHLEdBQUcsR0FBRyxRQUFRO0FBQUEsQ0FBQyxFQUU1RSxVQUFBRCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDRyxpQkFBaUIsSUFBSUgsS0FBSyxDQUFDQyxXQUFXLEdBQUcsVUFBVSxHQUFHLFVBQVU7QUFBQSxDQUFDLENBRTVGO0FBRUQsT0FBTyxJQUFNbUIscUJBQXFCLEdBQUc1QixNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMk1BVWxDLFVBQUFiLEtBQUssRUFBSTtFQUNsQixJQUFJQSxLQUFLLENBQUNxQix3QkFBd0IsRUFBRSxPQUFPLFFBQVE7RUFDbkQsSUFBSXJCLEtBQUssQ0FBQ3NCLHVCQUF1QixFQUFFLE9BQU8sZUFBZTtFQUN6RCxPQUFPdEIsS0FBSyxDQUFDSSxRQUFRLEdBQUcsTUFBTSxHQUFHLEdBQUc7QUFDdEMsQ0FBQyxFQUNjLFVBQUFKLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsR0FBRyxTQUFTLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFJaEUsVUFBQUQsS0FBSztFQUFBLE9BQUksQ0FBQ0EsS0FBSyxDQUFDSSxRQUFRLElBQUlKLEtBQUssQ0FBQ0csaUJBQWlCLElBQUlILEtBQUssQ0FBQ3FCLHdCQUF3QixLQUFLLG1CQUFtQjtBQUFBLEdBRTVGLFVBQUFyQixLQUFLLEVBQUk7RUFDMUIsSUFBSUEsS0FBSyxDQUFDcUIsd0JBQXdCLElBQUlyQixLQUFLLENBQUNDLFdBQVcsRUFBRSxPQUFPLFlBQVk7RUFDNUUsSUFBSUQsS0FBSyxDQUFDRyxpQkFBaUIsRUFBRSxPQUFPLGFBQWE7RUFDakQsT0FBT0gsS0FBSyxDQUFDSSxRQUFRLEdBQUcsWUFBWSxHQUFHLFFBQVE7QUFDakQsQ0FBQyxFQUthLFVBQUFKLEtBQUssRUFBSTtFQUNyQixJQUFJQSxLQUFLLENBQUNxQix3QkFBd0IsSUFBSXJCLEtBQUssQ0FBQ0UscUJBQXFCLElBQUlGLEtBQUssQ0FBQ0csaUJBQWlCLElBQUlILEtBQUssQ0FBQ0ksUUFBUSxFQUFFO0lBQzlHLE9BQU8sR0FBRztFQUNaO0VBQ0EsT0FBT0osS0FBSyxDQUFDSyxZQUFZLEdBQUcsaUNBQWlDLEdBQUcsR0FBRztBQUNyRSxDQUFDLEVBTUMsVUFBQWtCLEtBQUE7RUFBQSxJQUFHdEIsV0FBVyxHQUFBc0IsS0FBQSxDQUFYdEIsV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWFIsR0FBRyw0QkFJRjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU0rQix1QkFBdUIsR0FBR2hDLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwSEFLaEMsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ0MsV0FBVyxHQUFHLFNBQVMsR0FBRyxRQUFRO0FBQUEsQ0FBQyxFQUdoRSxVQUFBd0IsS0FBQTtFQUFBLElBQUdDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO0VBQUEsT0FBT0EsS0FBSyxJQUFJLGdDQUFnQztBQUFBLEdBQ3hELFVBQUFDLEtBQUE7RUFBQSxJQUFHMUIsV0FBVyxHQUFBMEIsS0FBQSxDQUFYMUIsV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWFIsR0FBRyw0QkFJRjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU1tQyx1QkFBdUIsR0FBR3BDLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwySkFVaEQ7QUFFRCxPQUFPLElBQU1nQixvQkFBb0IsR0FBR3JDLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxVEFlakMsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQzhCLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQztBQUFBLENBQUMsQ0FLMUM7QUFFRCxPQUFPLElBQU1DLHVCQUF1QixHQUFHdkMsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFUQWVwQyxVQUFBYixLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDOEIsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQUEsQ0FBQyxDQUsxQztBQUVELE9BQU8sSUFBTUUsZUFBZSxHQUFHeEMsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1JQVFoQyxVQUFBYixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDaUMsSUFBSSxJQUFJLE1BQU07QUFBQSxHQUNyQixVQUFBakMsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ2tDLE1BQU0sS0FBSyxPQUFPLEdBQUcsWUFBWSxHQUFHLFFBQVE7QUFBQSxDQUFDLEVBQy9ELFVBQUFsQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDbUMsU0FBUyxJQUFJLE1BQU07QUFBQSxHQUc1QixVQUFBbkMsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ2tDLE1BQU0sS0FBSyxPQUFPLElBQUlsQyxLQUFLLENBQUNLLFlBQVksR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FDdkc7QUFFRCxPQUFPLElBQU0rQiwyQkFBMkIsR0FBRzVDLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxpRkFNcEQ7O0FBRUQ7QUFDQSxPQUFPLElBQU13Qix3QkFBd0IsR0FBRzdDLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxpR0FHakMsVUFBQXlCLENBQUM7RUFBQSxPQUFLQSxDQUFDLENBQUNKLE1BQU0sS0FBSyxPQUFPLEdBQUcsWUFBWSxHQUFHLFFBQVE7QUFBQSxDQUFDLEVBQ3RELFVBQUFJLENBQUM7RUFBQSxPQUFLQSxDQUFDLENBQUNKLE1BQU0sS0FBSyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU07QUFBQSxDQUFDLEVBQ3JELFVBQUFJLENBQUM7RUFBQSxPQUFLQSxDQUFDLENBQUNKLE1BQU0sS0FBSyxPQUFPLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBQy9DLFVBQUFJLENBQUM7RUFBQSxPQUFLQSxDQUFDLENBQUNDLE1BQU0sR0FBRyxDQUFDLEdBQUcsS0FBSztBQUFBLENBQUMsQ0FDbkM7QUFFRCxPQUFPLElBQU1DLGlCQUFpQixHQUFHaEQsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1S0FLN0IsVUFBQTZCLEtBQUE7RUFBQSxJQUFHQyxLQUFLLEdBQUFELEtBQUEsQ0FBTEMsS0FBSztFQUFBLE9BQVFBLEtBQUssS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBRy9DLFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxLQUFLLEdBQUFDLEtBQUEsQ0FBTEQsS0FBSztFQUFBLE9BQVFBLEtBQUssS0FBSyxJQUFJLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBQ2xELFVBQUEzQyxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDa0MsTUFBTSxLQUFLLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFJbkUsVUFBQWxDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNrQyxNQUFNLEtBQUssT0FBTyxJQUFJLHNCQUFzQjtBQUFBLEdBQzNELFVBQUFsQyxLQUFLO0VBQUEsT0FDTEEsS0FBSyxDQUFDNkMsU0FBUyxrRkFLaEI7QUFBQSxFQUNGO0FBRUQsT0FBTyxJQUFNQyxjQUFjLEdBQUd0RCxNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlLQUsxQixVQUFBa0MsS0FBQSxFQUEyQjtFQUFBLElBQXhCSixLQUFLLEdBQUFJLEtBQUEsQ0FBTEosS0FBSztJQUFFSyxVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtFQUMvQixJQUFJQSxVQUFVLEVBQUUsT0FBTyxNQUFNO0VBQzdCLElBQUlMLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBSyxTQUFTLEVBQUUsT0FBTyxPQUFPO0VBQ3pELE9BQU8sT0FBTztBQUNoQixDQUFDLEVBRWEsVUFBQU0sS0FBQTtFQUFBLElBQUdmLE1BQU0sR0FBQWUsS0FBQSxDQUFOZixNQUFNO0VBQUEsT0FBUUEsTUFBTSxLQUFLLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFFekQsVUFBQWdCLEtBQUEsRUFBZTtFQUFBLElBQVpQLEtBQUssR0FBQU8sS0FBQSxDQUFMUCxLQUFLO0VBQ25CLElBQUlBLEtBQUssS0FBSyxJQUFJLEVBQUUsT0FBTyxNQUFNO0VBQ2pDLElBQUlBLEtBQUssS0FBSyxTQUFTLEVBQUUsT0FBTyxNQUFNO0VBQ3RDLE9BQU8sTUFBTTtBQUNmLENBQUMsRUFHYyxVQUFBUSxLQUFBLEVBQWU7RUFBQSxJQUFaUixLQUFLLEdBQUFRLEtBQUEsQ0FBTFIsS0FBSztFQUNyQixJQUFJQSxLQUFLLEtBQUssSUFBSSxFQUFFLE9BQU8sTUFBTTtFQUNqQyxJQUFJQSxLQUFLLEtBQUssU0FBUyxFQUFFLE9BQU8sTUFBTTtFQUN0QyxPQUFPLE1BQU07QUFDZixDQUFDLENBRUY7O0FBRUQ7QUFDQSxPQUFPLElBQU1TLG1CQUFtQixHQUFHNUQsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRIQUk1QixVQUFBd0MsS0FBQTtFQUFBLElBQUduQixNQUFNLEdBQUFtQixLQUFBLENBQU5uQixNQUFNO0VBQUEsT0FBUUEsTUFBTSxLQUFLLE9BQU8sR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFHaEUsVUFBQW9CLE1BQUE7RUFBQSxJQUFHTixVQUFVLEdBQUFNLE1BQUEsQ0FBVk4sVUFBVTtFQUFBLE9BQVFBLFVBQVUsR0FBRyxNQUFNLEdBQUcsT0FBTztBQUFBLENBQUMsQ0FDakU7QUFFRCxPQUFPLElBQU1PLGlCQUFpQixHQUFHL0QsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4TEFHNUIsVUFBQTJDLE1BQUE7RUFBQSxJQUFHdEIsTUFBTSxHQUFBc0IsTUFBQSxDQUFOdEIsTUFBTTtFQUFBLE9BQVFBLE1BQU0sS0FBSyxPQUFPLEdBQUcsTUFBTSxHQUFHLFFBQVE7QUFBQSxDQUFDLEVBUXBFLFVBQUF1QixNQUFBO0VBQUEsSUFBR0MsaUJBQWlCLEdBQUFELE1BQUEsQ0FBakJDLGlCQUFpQjtFQUFBLE9BQ3BCQSxpQkFBaUIsNkVBTWxCO0FBQUEsRUFDRjtBQUVELE9BQU8sSUFBTUMsa0JBQWtCLEdBQUduRSxNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVJQVE1QztBQUVELE9BQU8sSUFBTStDLHFCQUFxQixHQUFHcEUsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrSkFJakMsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQzZELFFBQVEsR0FBRyxPQUFPLEdBQUcsT0FBTztBQUFBLENBQUMsQ0FLM0Q7QUFFRCxPQUFPLElBQU1DLG1CQUFtQixHQUFHdEUsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5SUFXN0M7QUFFRCxPQUFPLElBQU1rRCx1QkFBdUIsR0FBR3ZFLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2RkFNaEQ7QUFFRCxPQUFPLElBQU1tRCw4QkFBOEIsR0FBR3hFLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwyQ0FHdkQ7QUFFRCxPQUFPLElBQU1vRCw0QkFBNEIsR0FBR3pFLE1BQU0sQ0FBQ2lELElBQUksQ0FBQTlCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOENBR3REO0FBRUQsT0FBTyxJQUFNcUQsa0NBQWtDLEdBQUcxRSxNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlEQUc1RDtBQUVELE9BQU8sSUFBTXNELHVCQUF1QixHQUFHM0UsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhIQUt4QyxVQUFBYixLQUFLO0VBQUEsSUFBQW9FLGtCQUFBO0VBQUEsUUFBQUEsa0JBQUEsR0FBSXBFLEtBQUssQ0FBQ3FFLFdBQVcsY0FBQUQsa0JBQUEsY0FBQUEsa0JBQUEsR0FBSSxFQUFFO0FBQUEsR0FDMUIsVUFBQXBFLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNrQixrQkFBa0IsR0FBRyxNQUFNLEdBQUcsT0FBTztBQUFBLENBQUMsQ0FFcEU7QUFFRCxPQUFPLElBQU1vRCw0QkFBNEIsR0FBRzlFLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3R0FPckQ7QUFFRCxPQUFPLElBQU0wRCxvQ0FBb0MsR0FBRy9FLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3R0FPN0Q7QUFFRCxPQUFPLElBQU0yRCxtQ0FBbUMsR0FBR2hGLE1BQU0sQ0FBQ2lELElBQUksQ0FBQTlCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0pBUzdEO0FBRUQsT0FBTyxJQUFNNEQsc0NBQXNDLEdBQUdqRixNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9KQVNoRTtBQUVELE9BQU8sSUFBTTZELDRCQUE0QixHQUFHbEYsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2SkFVdEQ7QUFFRCxPQUFPLElBQU04RCwyQkFBMkIsR0FBR25GLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5SEFNeEMsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQzRFLFdBQVcsR0FBRyxHQUFHLEdBQUcsT0FBTztBQUFBLENBQUMsQ0FFeEQ7QUFFRCxPQUFPLElBQU1DLDBCQUEwQixHQUFHckYsTUFBTSxDQUFDc0YsTUFBTSxDQUFBbkUsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4UEFNeEMsVUFBQWIsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ2dELFVBQVUsR0FBRyxNQUFNLEdBQUcsT0FBTztBQUFBLENBQUMsQ0FZNUQ7QUFFRCxPQUFPLElBQU0rQiw4QkFBOEIsR0FBR3ZGLE1BQU0sQ0FBQ2lELElBQUksQ0FBQTlCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUhBUXhEO0FBRUQsT0FBTyxJQUFNbUUsOEJBQThCLEdBQUd4RixNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFPQWN4RDtBQUVELE9BQU8sSUFBTW9FLGtDQUFrQyxHQUFHekYsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDJJQU03Q0wsb0JBQW9CLENBQ2xDO0FBRUQsT0FBTyxJQUFNMEUsb0JBQW9CLEdBQUcxRixNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK0RBSzdDO0FBRUQsT0FBTyxJQUFNc0UsZ0JBQWdCLEdBQUczRixNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNEZBT3pDO0FBRUQsT0FBTyxJQUFNdUUsb0JBQW9CLEdBQUc1RixNQUFNLENBQUNpRCxJQUFJLENBQUE5QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1DQUVwQ2hCLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUMvQjtBQUVELE9BQU8sSUFBTXdGLGVBQWUsR0FBRzdGLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwyRUFNeEM7QUFFRCxPQUFPLElBQU15RSxtQkFBbUIsR0FBRzlGLE1BQU0sQ0FBQ2lELElBQUksQ0FBQTlCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK0RBSTdDO0FBRUQsT0FBTyxJQUFNMEUsaUJBQWlCLEdBQUcvRixNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbVlBWTlCakIsYUFBYSxDQUFDNEYsT0FBTyxFQVluQjdGLE1BQU0sQ0FBQzhGLElBQUksQ0FBQ0MsU0FBUyxDQVNuQztBQUVELE9BQU8sSUFBTUMsMEJBQTBCLEdBQUduRyxNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOFNBbUJuRDtBQUVELE9BQU8sSUFBTStFLDJCQUEyQixHQUFHcEcsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1GQU1wRDtBQUVELE9BQU8sSUFBTWdGLHNCQUFzQixHQUFHckcsTUFBTSxDQUFDa0IsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlFQUkvQztBQUVELE9BQU8sSUFBTWlGLHNCQUFzQixHQUFHdEcsTUFBTSxDQUFDaUQsSUFBSSxDQUFBOUIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxvREFJaEQ7QUFFRCxPQUFPLElBQU1rRiwwQkFBMEIsR0FBR3ZHLE1BQU0sQ0FBQ2lELElBQUksQ0FBQTlCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMEJBRXBEO0FBRUQsSUFBTW1GLGNBQWMsR0FBR3RHLFNBQVMsNkhBUy9CO0FBRUQsSUFBTXVHLGNBQWMsR0FBR3ZHLFNBQVMsNkhBUy9CO0FBQ0QsT0FBTyxJQUFNd0csc0JBQXNCLEdBQUcxRyxNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsa0dBTS9DO0FBRUQsT0FBTyxJQUFNc0Ysa0JBQWtCLEdBQUczRyxNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ09BTzdCbUYsY0FBYyxDQUk1QjtBQUVELE9BQU8sSUFBTUksa0JBQWtCLEdBQUc1RyxNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaU9BTzdCb0YsY0FBYyxDQUk1QjtBQUVELE9BQU8sSUFBTUksb0JBQW9CLEdBQUc3RyxNQUFNLENBQUNrQixHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0NBRzdDIiwiaWdub3JlTGlzdCI6W119