@projectcor/maia-components 2.44.4 → 2.44.5-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 (427) 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.spec.js +135 -0
  6. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
  7. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +65 -0
  8. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +66 -0
  9. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +5 -51
  10. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +211 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
  12. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +55 -0
  13. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +41 -0
  14. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +18 -76
  15. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +253 -0
  16. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +31 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +33 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +3 -31
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +25 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +4 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
  23. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +2 -4
  24. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
  25. package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
  26. package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
  27. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
  28. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  29. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  30. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
  31. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +88 -0
  32. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  33. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
  34. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +227 -0
  35. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +77 -0
  36. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +15 -255
  37. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
  38. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +31 -0
  39. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +48 -0
  40. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -34
  41. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +231 -0
  42. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
  43. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
  44. package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
  45. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
  46. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
  47. package/lib/components/atoms/Expand/Expand.spec.js +57 -0
  48. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  49. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
  50. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
  51. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  52. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
  53. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  54. package/lib/components/atoms/HelpButton.spec.js +87 -0
  55. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
  56. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
  57. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
  58. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
  59. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
  60. package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
  61. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  62. package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
  63. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +12 -0
  64. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +26 -0
  65. package/lib/components/atoms/MAIAInput/MAIAInput.js +4 -10
  66. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +430 -0
  67. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +50 -0
  68. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +20 -0
  69. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -60
  70. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +53 -0
  71. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +22 -0
  72. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
  73. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
  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.js +17 -0
  81. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
  82. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +3 -15
  83. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
  84. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +86 -0
  85. package/lib/components/atoms/PrimaryButton.spec.js +42 -0
  86. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
  87. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  88. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  89. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +21 -16
  90. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +7 -5
  91. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  92. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +72 -52
  93. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +132 -0
  94. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +162 -0
  95. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +6 -1
  96. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
  97. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +36 -15
  98. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
  99. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +4 -0
  100. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +10 -0
  101. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
  102. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  103. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -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.spec.js +85 -0
  108. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  109. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
  110. package/lib/components/atoms/TextArea/TextArea.spec.js +68 -0
  111. package/lib/components/atoms/ThirdButton.spec.js +29 -0
  112. package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
  113. package/lib/components/atoms/WithAppCfg.spec.js +60 -0
  114. package/lib/components/index.js +2 -1
  115. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +37 -0
  116. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
  117. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +5 -29
  118. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +371 -0
  119. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +39 -0
  120. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +57 -0
  121. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +6 -40
  122. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +227 -0
  123. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +86 -0
  124. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +108 -0
  125. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +18 -90
  126. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +254 -0
  127. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +17 -0
  128. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
  129. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +5 -15
  130. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
  131. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
  132. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
  133. package/lib/components/molecules/AgentInputBlock/index.js +5 -0
  134. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
  135. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
  136. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
  137. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
  138. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
  139. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
  140. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  141. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
  142. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
  143. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +21 -6
  144. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
  145. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
  146. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  147. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +54 -0
  148. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +77 -0
  149. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +19 -47
  150. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +410 -0
  151. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  152. package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
  153. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +147 -4
  154. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +471 -0
  155. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +64 -108
  156. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +659 -0
  157. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +5 -0
  158. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
  159. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +3 -2
  160. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
  161. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
  162. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
  163. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
  164. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +30 -0
  165. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +95 -0
  166. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +76 -86
  167. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
  168. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  169. package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
  170. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
  171. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
  172. package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
  173. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +172 -0
  174. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  175. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
  176. package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -3
  177. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +355 -0
  178. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
  179. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +48 -0
  180. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +82 -0
  181. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +9 -44
  182. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
  183. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  184. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  185. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
  186. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
  187. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
  188. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
  189. package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
  190. package/lib/components/molecules/Sidebar/Sidebar.spec.js +453 -0
  191. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +198 -0
  192. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +385 -0
  193. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +56 -171
  194. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1125 -0
  195. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
  196. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +405 -0
  197. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  198. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
  199. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
  200. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  201. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  202. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  203. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  204. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +267 -0
  205. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +261 -0
  206. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +194 -0
  207. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +105 -0
  208. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +73 -0
  209. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
  210. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  211. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  212. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  213. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
  214. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  215. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  216. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  217. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
  218. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
  219. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
  220. package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
  221. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
  222. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
  223. package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
  224. package/lib/constants/permissions/index.js +2 -2
  225. package/lib/constants/permissions/utils.js +4 -1
  226. package/lib/constants/permissions/utils.spec.js +128 -0
  227. package/lib/dev/DevMaiaPage.js +30 -0
  228. package/lib/dev/DevReasoningTimeline.js +68 -37
  229. package/lib/dev/Providers.js +5 -3
  230. package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
  231. package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
  232. package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
  233. package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
  234. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +231 -0
  235. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
  236. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +313 -0
  237. package/lib/hooks/useAgentSuggestions.spec.js +89 -0
  238. package/lib/hooks/useCaretPosition.spec.js +58 -0
  239. package/lib/hooks/useChatManager/useChatManager.helpers.js +353 -0
  240. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +506 -0
  241. package/lib/hooks/useChatManager/useChatManager.js +76 -351
  242. package/lib/hooks/useChatManager/useChatManager.spec.js +1261 -0
  243. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +109 -0
  244. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +176 -0
  245. package/lib/hooks/useChatMessages/useChatMessages.js +12 -82
  246. package/lib/hooks/useChatMessages/useChatMessages.spec.js +379 -0
  247. package/lib/hooks/useChats/useChats.spec.js +208 -0
  248. package/lib/hooks/useClientSearch.helpers.js +36 -0
  249. package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
  250. package/lib/hooks/useClientSearch.js +4 -32
  251. package/lib/hooks/useClientSearch.spec.js +86 -0
  252. package/lib/hooks/useContextMentions.helpers.js +152 -0
  253. package/lib/hooks/useContextMentions.helpers.spec.js +143 -0
  254. package/lib/hooks/useContextMentions.js +2 -163
  255. package/lib/hooks/useContextMentions.spec.js +239 -0
  256. package/lib/hooks/useContextMentions.types.js +2 -0
  257. package/lib/hooks/useContextPinPopover.helpers.js +95 -0
  258. package/lib/hooks/useContextPinPopover.helpers.spec.js +115 -0
  259. package/lib/hooks/useContextPinPopover.js +16 -75
  260. package/lib/hooks/useContextPinPopover.spec.js +159 -0
  261. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
  262. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
  263. package/lib/hooks/useDebounce.spec.js +42 -0
  264. package/lib/hooks/useEntitySearch.helpers.js +359 -0
  265. package/lib/hooks/useEntitySearch.helpers.spec.js +321 -0
  266. package/lib/hooks/useEntitySearch.js +38 -391
  267. package/lib/hooks/useEntitySearch.spec.js +443 -0
  268. package/lib/hooks/useEvent.spec.js +45 -0
  269. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
  270. package/lib/hooks/useFrequentlyUsedActions.js +60 -22
  271. package/lib/hooks/useFrequentlyUsedActions.spec.js +135 -0
  272. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  273. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  274. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
  275. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
  276. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
  277. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
  278. package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
  279. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
  280. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  281. package/lib/hooks/useMentionPopover.helpers.js +41 -0
  282. package/lib/hooks/useMentionPopover.helpers.spec.js +71 -0
  283. package/lib/hooks/useMentionPopover.js +9 -35
  284. package/lib/hooks/useMentionPopover.spec.js +215 -0
  285. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +47 -0
  286. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +132 -0
  287. package/lib/hooks/useMinimizedPillBottomOffset.js +15 -45
  288. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
  289. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  290. package/lib/hooks/useModal/useModal.spec.js +73 -0
  291. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +192 -0
  292. package/lib/hooks/useProjectSearch.helpers.js +61 -0
  293. package/lib/hooks/useProjectSearch.helpers.spec.js +70 -0
  294. package/lib/hooks/useProjectSearch.js +4 -58
  295. package/lib/hooks/useProjectSearch.spec.js +91 -0
  296. package/lib/hooks/useProjectSummary.spec.js +193 -0
  297. package/lib/hooks/useProjectSummaryConfig.helpers.js +62 -0
  298. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +92 -0
  299. package/lib/hooks/useProjectSummaryConfig.js +14 -52
  300. package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
  301. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
  302. package/lib/hooks/useRecentClientsSearch.helpers.js +33 -0
  303. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
  304. package/lib/hooks/useRecentClientsSearch.js +4 -32
  305. package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
  306. package/lib/hooks/useRecentContexts.spec.js +139 -0
  307. package/lib/hooks/useResize.spec.js +37 -0
  308. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  309. package/lib/hooks/useSlashCommands.spec.js +139 -0
  310. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
  311. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  312. package/lib/hooks/useStreamResponse.spec.js +199 -0
  313. package/lib/hooks/useT.spec.js +20 -0
  314. package/lib/hooks/useToggle.spec.js +33 -0
  315. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
  316. package/lib/index.js +5 -2
  317. package/lib/lang/br/index.js +26 -1
  318. package/lib/lang/en/index.js +26 -1
  319. package/lib/lang/es/index.js +26 -1
  320. package/lib/lang/fr/index.js +26 -1
  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.spec.js +359 -0
  326. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  327. package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
  328. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  329. package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
  330. package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
  331. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
  332. package/lib/services/maia/Agents/getAgents.helpers.js +181 -0
  333. package/lib/services/maia/Agents/getAgents.helpers.spec.js +211 -0
  334. package/lib/services/maia/Agents/getAgents.js +78 -242
  335. package/lib/services/maia/Agents/getAgents.spec.js +697 -0
  336. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  337. package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
  338. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  339. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  340. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  341. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  342. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  343. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  344. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  345. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  346. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  347. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  348. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  349. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +130 -0
  350. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +153 -0
  351. package/lib/services/maia/Orchestrator/orchestrator.js +38 -121
  352. package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
  353. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  354. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
  355. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  356. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  357. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  358. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  359. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  360. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  361. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  362. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  363. package/lib/services/maia/client.spec.js +56 -0
  364. package/lib/services/utils/fetchCOR.spec.js +211 -0
  365. package/lib/services/utils/getCookie.spec.js +20 -0
  366. package/lib/services/utils/mapChatMessages.spec.js +254 -0
  367. package/lib/store/chatsSidebarOptimistic.spec.js +112 -0
  368. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  369. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  370. package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
  371. package/lib/store/sessions/sessionNotifications.helpers.js +45 -0
  372. package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
  373. package/lib/store/sessions/sessionNotifications.js +35 -41
  374. package/lib/store/sessions/sessionNotifications.spec.js +106 -0
  375. package/lib/store/sessions/sessionStreamManager.js +40 -52
  376. package/lib/store/sessions/sessionStreamManager.spec.js +503 -0
  377. package/lib/store/sessions/sessions.types.spec.js +16 -0
  378. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  379. package/lib/store/useChatsStore.spec.js +619 -0
  380. package/lib/store/useFaqsStore.spec.js +57 -0
  381. package/lib/styles/cascade.js +29 -3
  382. package/lib/styles/transitions.js +3 -1
  383. package/lib/test/mockSseStream.js +121 -0
  384. package/lib/test/streamdownCodeMock.js +6 -0
  385. package/lib/test/streamdownMock.js +12 -0
  386. package/lib/types/agentModal.js +1 -1
  387. package/lib/types/global.d.js +1 -1
  388. package/lib/utils/actionCategoryMap.spec.js +18 -0
  389. package/lib/utils/agentDisplayName.spec.js +44 -0
  390. package/lib/utils/autoApproveStorage.spec.js +25 -0
  391. package/lib/utils/chatInputFiles.spec.js +39 -0
  392. package/lib/utils/contextMentionIcons.spec.js +41 -0
  393. package/lib/utils/contextMentionLabel.spec.js +13 -0
  394. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  395. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  396. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  397. package/lib/utils/entityLinkRender.spec.js +72 -0
  398. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  399. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  400. package/lib/utils/formatUnreadCount.spec.js +12 -0
  401. package/lib/utils/getUnitFileSize.spec.js +18 -0
  402. package/lib/utils/hitlAnalytics.spec.js +100 -0
  403. package/lib/utils/hoursPlannerQuickActionType.js +74 -1
  404. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  405. package/lib/utils/imagePreprocessor.helpers.js +28 -0
  406. package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
  407. package/lib/utils/imagePreprocessor.js +12 -37
  408. package/lib/utils/imagePreprocessor.spec.js +112 -0
  409. package/lib/utils/maiaPageRoute.js +24 -0
  410. package/lib/utils/maiaPageRoute.spec.js +23 -0
  411. package/lib/utils/mapBackendLang.spec.js +19 -0
  412. package/lib/utils/navigateContextEntity.spec.js +50 -0
  413. package/lib/utils/normalizeAgentConnectors.spec.js +107 -0
  414. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  415. package/lib/utils/reasoningMappers.spec.js +103 -0
  416. package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
  417. package/lib/utils/renderContextMentions.spec.js +158 -0
  418. package/lib/utils/retryCompletion.spec.js +99 -0
  419. package/lib/utils/skillContentSize.spec.js +13 -0
  420. package/lib/utils/slashCommandMarker.spec.js +43 -0
  421. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  422. package/lib/utils/sseStreamContent.spec.js +31 -0
  423. package/lib/utils/streamActivityMessages.js +32 -19
  424. package/lib/utils/streamActivityMessages.spec.js +227 -0
  425. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  426. package/package.json +1 -1
  427. package/README.md +0 -2
@@ -0,0 +1,69 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { ProjectSelector } from './ProjectSelector';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ var fetchRecentProjects = jest.fn();
5
+ var updateSearchValue = jest.fn();
6
+ var eventAmplitude = jest.fn();
7
+ var recentProjects = [{
8
+ id: 20,
9
+ title: 'Website',
10
+ client: {
11
+ name: 'Acme'
12
+ }
13
+ }, {
14
+ id: 21,
15
+ title: 'App',
16
+ client: null
17
+ }];
18
+ jest.mock('../../../hooks/useProjectSearch', function () {
19
+ return {
20
+ useProjectSearch: function useProjectSearch() {
21
+ return {
22
+ fetchRecentProjects: fetchRecentProjects,
23
+ recentProjectsLoading: false,
24
+ recentProjectsError: false,
25
+ recentProjects: recentProjects,
26
+ updateSearchValue: updateSearchValue
27
+ };
28
+ }
29
+ };
30
+ });
31
+ jest.mock('../../../hooks/useEvent', function () {
32
+ return {
33
+ EVENTS: {
34
+ aiChatSearchContextSelectResult: 'AI_CHAT_SEARCH_CONTEXT_SELECT_RESULT'
35
+ },
36
+ useEvent: function useEvent() {
37
+ return eventAmplitude;
38
+ }
39
+ };
40
+ });
41
+ describe('ProjectSelector', function () {
42
+ beforeEach(function () {
43
+ jest.clearAllMocks();
44
+ HTMLElement.prototype.scrollIntoView = jest.fn();
45
+ });
46
+ it('renders recent projects and notifies when one is selected', function () {
47
+ var onProjectSelected = jest.fn();
48
+ renderWithProviders(/*#__PURE__*/_jsx(ProjectSelector, {
49
+ onProjectSelected: onProjectSelected
50
+ }));
51
+ expect(fetchRecentProjects).toHaveBeenCalled();
52
+ fireEvent.click(screen.getByText('Website'));
53
+ expect(eventAmplitude).toHaveBeenCalledWith('AI_CHAT_SEARCH_CONTEXT_SELECT_RESULT', {
54
+ result_type: 'recent',
55
+ entity: 'project'
56
+ });
57
+ expect(onProjectSelected).toHaveBeenCalledWith(recentProjects[0]);
58
+ });
59
+ it('forwards search changes to the project search hook', function () {
60
+ renderWithProviders(/*#__PURE__*/_jsx(ProjectSelector, {}));
61
+ fireEvent.change(screen.getByRole('textbox'), {
62
+ target: {
63
+ value: 'web'
64
+ }
65
+ });
66
+ expect(updateSearchValue).toHaveBeenCalledWith('web');
67
+ });
68
+ });
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiUHJvamVjdFNlbGVjdG9yIiwianN4IiwiX2pzeCIsImZldGNoUmVjZW50UHJvamVjdHMiLCJqZXN0IiwiZm4iLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsImV2ZW50QW1wbGl0dWRlIiwicmVjZW50UHJvamVjdHMiLCJpZCIsInRpdGxlIiwiY2xpZW50IiwibmFtZSIsIm1vY2siLCJ1c2VQcm9qZWN0U2VhcmNoIiwicmVjZW50UHJvamVjdHNMb2FkaW5nIiwicmVjZW50UHJvamVjdHNFcnJvciIsIkVWRU5UUyIsImFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQiLCJ1c2VFdmVudCIsImRlc2NyaWJlIiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJIVE1MRWxlbWVudCIsInByb3RvdHlwZSIsInNjcm9sbEludG9WaWV3IiwiaXQiLCJvblByb2plY3RTZWxlY3RlZCIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJjbGljayIsImdldEJ5VGV4dCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwicmVzdWx0X3R5cGUiLCJlbnRpdHkiLCJjaGFuZ2UiLCJnZXRCeVJvbGUiLCJ0YXJnZXQiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1Byb2plY3RTZWxlY3Rvci9Qcm9qZWN0U2VsZWN0b3Iuc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXJXaXRoUHJvdmlkZXJzLCBzY3JlZW4gfSBmcm9tICcuLi8uLi8uLi90ZXN0L3Rlc3QtdXRpbHMnXG5pbXBvcnQgeyBQcm9qZWN0U2VsZWN0b3IgfSBmcm9tICcuL1Byb2plY3RTZWxlY3RvcidcblxuY29uc3QgZmV0Y2hSZWNlbnRQcm9qZWN0cyA9IGplc3QuZm4oKVxuY29uc3QgdXBkYXRlU2VhcmNoVmFsdWUgPSBqZXN0LmZuKClcbmNvbnN0IGV2ZW50QW1wbGl0dWRlID0gamVzdC5mbigpXG5cbmNvbnN0IHJlY2VudFByb2plY3RzID0gW1xuICB7IGlkOiAyMCwgdGl0bGU6ICdXZWJzaXRlJywgY2xpZW50OiB7IG5hbWU6ICdBY21lJyB9IH0sXG4gIHsgaWQ6IDIxLCB0aXRsZTogJ0FwcCcsIGNsaWVudDogbnVsbCB9LFxuXVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVByb2plY3RTZWFyY2gnLCAoKSA9PiAoe1xuICB1c2VQcm9qZWN0U2VhcmNoOiAoKSA9PiAoe1xuICAgIGZldGNoUmVjZW50UHJvamVjdHMsXG4gICAgcmVjZW50UHJvamVjdHNMb2FkaW5nOiBmYWxzZSxcbiAgICByZWNlbnRQcm9qZWN0c0Vycm9yOiBmYWxzZSxcbiAgICByZWNlbnRQcm9qZWN0cyxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSxcbiAgfSksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcsICgpID0+ICh7XG4gIEVWRU5UUzogeyBhaUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0OiAnQUlfQ0hBVF9TRUFSQ0hfQ09OVEVYVF9TRUxFQ1RfUkVTVUxUJyB9LFxuICB1c2VFdmVudDogKCkgPT4gZXZlbnRBbXBsaXR1ZGUsXG59KSlcblxuZGVzY3JpYmUoJ1Byb2plY3RTZWxlY3RvcicsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKClcbiAgICBIVE1MRWxlbWVudC5wcm90b3R5cGUuc2Nyb2xsSW50b1ZpZXcgPSBqZXN0LmZuKClcbiAgfSlcblxuICBpdCgncmVuZGVycyByZWNlbnQgcHJvamVjdHMgYW5kIG5vdGlmaWVzIHdoZW4gb25lIGlzIHNlbGVjdGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uUHJvamVjdFNlbGVjdGVkID0gamVzdC5mbigpXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8UHJvamVjdFNlbGVjdG9yIG9uUHJvamVjdFNlbGVjdGVkPXtvblByb2plY3RTZWxlY3RlZH0gLz4pXG5cbiAgICBleHBlY3QoZmV0Y2hSZWNlbnRQcm9qZWN0cykudG9IYXZlQmVlbkNhbGxlZCgpXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVRleHQoJ1dlYnNpdGUnKSlcblxuICAgIGV4cGVjdChldmVudEFtcGxpdHVkZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ0FJX0NIQVRfU0VBUkNIX0NPTlRFWFRfU0VMRUNUX1JFU1VMVCcsIHtcbiAgICAgIHJlc3VsdF90eXBlOiAncmVjZW50JyxcbiAgICAgIGVudGl0eTogJ3Byb2plY3QnLFxuICAgIH0pXG4gICAgZXhwZWN0KG9uUHJvamVjdFNlbGVjdGVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChyZWNlbnRQcm9qZWN0c1swXSlcbiAgfSlcblxuICBpdCgnZm9yd2FyZHMgc2VhcmNoIGNoYW5nZXMgdG8gdGhlIHByb2plY3Qgc2VhcmNoIGhvb2snLCAoKSA9PiB7XG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8UHJvamVjdFNlbGVjdG9yIC8+KVxuXG4gICAgZmlyZUV2ZW50LmNoYW5nZShzY3JlZW4uZ2V0QnlSb2xlKCd0ZXh0Ym94JyksIHsgdGFyZ2V0OiB7IHZhbHVlOiAnd2ViJyB9IH0pXG5cbiAgICBleHBlY3QodXBkYXRlU2VhcmNoVmFsdWUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCd3ZWInKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRixTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRW5ELElBQU1DLG1CQUFtQixHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLElBQU1DLGlCQUFpQixHQUFHRixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0FBQ25DLElBQU1FLGNBQWMsR0FBR0gsSUFBSSxDQUFDQyxF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
@@ -8,6 +8,7 @@ import { formatActivityElapsed } from '../AgentActivityIndicator/AgentActivityIn
8
8
  import { deriveReasoningSummary } from '../../../utils/reasoningMappers';
9
9
  import { isVisibleStep, StepList } from './ReasoningSteps';
10
10
  import { SCExpandedTrace, SCReasoningBlock, SCSummaryToggle, SCTraceCollapse, SCTraceNote } from './ReasoningBlock.styles';
11
+ import { useCollapsibleHeight } from './useCollapsibleHeight';
11
12
 
12
13
  /** Tiempo que queda visible el detalle antes de plegarse solo al terminar el turno. */
13
14
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
@@ -48,6 +49,9 @@ export var ReasoningBlock = function ReasoningBlock(_ref) {
48
49
  _useState2 = _slicedToArray(_useState, 2),
49
50
  isExpanded = _useState2[0],
50
51
  setIsExpanded = _useState2[1];
52
+ var _useCollapsibleHeight = useCollapsibleHeight(isExpanded),
53
+ innerRef = _useCollapsibleHeight.innerRef,
54
+ height = _useCollapsibleHeight.height;
51
55
  useEffect(function () {
52
56
  if (!tookOverFromLive.current) return undefined;
53
57
  var timeoutId = window.setTimeout(function () {
@@ -104,9 +108,10 @@ export var ReasoningBlock = function ReasoningBlock(_ref) {
104
108
  })
105
109
  })]
106
110
  }), /*#__PURE__*/_jsx(SCTraceCollapse, {
107
- $isOpen: isExpanded,
111
+ $height: height,
108
112
  "aria-hidden": !isExpanded,
109
113
  children: /*#__PURE__*/_jsxs(SCExpandedTrace, {
114
+ ref: innerRef,
110
115
  $isOpen: isExpanded,
111
116
  children: [/*#__PURE__*/_jsx(StepList, {
112
117
  steps: expandedSteps,
@@ -118,4 +123,4 @@ export var ReasoningBlock = function ReasoningBlock(_ref) {
118
123
  })]
119
124
  });
120
125
  };
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiQ2hldnJvblJpZ2h0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlUmVhc29uaW5nVHJhY2UiLCJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJkZXJpdmVSZWFzb25pbmdTdW1tYXJ5IiwiaXNWaXNpYmxlU3RlcCIsIlN0ZXBMaXN0IiwiU0NFeHBhbmRlZFRyYWNlIiwiU0NSZWFzb25pbmdCbG9jayIsIlNDU3VtbWFyeVRvZ2dsZSIsIlNDVHJhY2VDb2xsYXBzZSIsIlNDVHJhY2VOb3RlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiQVVUT19DT0xMQVBTRV9ERUxBWV9NUyIsIlJlYXNvbmluZ0Jsb2NrIiwiX3JlZiIsIl9yZWYyIiwiX2xpdmVUcmFjZSRzdW1tYXJ5IiwibWVzc2FnZUlkIiwidHJhY2UiLCJfdXNlVCIsInQiLCJldmVudEFtcGxpdHVkZSIsImxpdmVUcmFjZSIsInRvb2tPdmVyRnJvbUxpdmUiLCJwaGFzZSIsInN0ZXBzIiwibGVuZ3RoIiwiX3VzZVN0YXRlIiwiY3VycmVudCIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwidW5kZWZpbmVkIiwidGltZW91dElkIiwid2luZG93Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImxpdmVTdGVwcyIsImVmZmVjdGl2ZVN1bW1hcnkiLCJzdW1tYXJ5IiwiZXhwYW5kZWRTdGVwcyIsIl90cmFjZSRzdGVwcyIsImZpbHRlciIsImhhbmRsZVRvZ2dsZSIsImFpQ2hhdFRoaW5raW5nIiwib3B0aW9uIiwiYWN0aW9uQ291bnQiLCJ0b29sQ291bnQiLCJkdXJhdGlvbkxhYmVsIiwiZHVyYXRpb25NcyIsIk1hdGgiLCJtYXgiLCJyb3VuZCIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJ0aXRsZSIsImR1cmF0aW9uIiwiY2xhc3NOYW1lIiwiY291bnQiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiJGlzT3BlbiIsInRydW5jYXRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ0Jsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UnXG5pbXBvcnQgeyBmb3JtYXRBY3Rpdml0eUVsYXBzZWQgfSBmcm9tICcuLi9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IudXRpbHMnXG5pbXBvcnQgeyBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVhc29uaW5nTWFwcGVycydcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nVHJhY2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgeyBpc1Zpc2libGVTdGVwLCBTdGVwTGlzdCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQge1xuICBTQ0V4cGFuZGVkVHJhY2UsXG4gIFNDUmVhc29uaW5nQmxvY2ssXG4gIFNDU3VtbWFyeVRvZ2dsZSxcbiAgU0NUcmFjZUNvbGxhcHNlLFxuICBTQ1RyYWNlTm90ZSxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbi8qKiBUaWVtcG8gcXVlIHF1ZWRhIHZpc2libGUgZWwgZGV0YWxsZSBhbnRlcyBkZSBwbGVnYXJzZSBzb2xvIGFsIHRlcm1pbmFyIGVsIHR1cm5vLiAqL1xuY29uc3QgQVVUT19DT0xMQVBTRV9ERUxBWV9NUyA9IDkwMFxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdCbG9ja1Byb3BzID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICB0cmFjZT86IFJlYXNvbmluZ1RyYWNlIHwgbnVsbFxufVxuXG4vLyBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGUgbGEgdG9vbDogZGVzaGFiaWxpdGFkby4gRWwgYHJlc3VsdF9wcmV2aWV3YCBkZWwgYmFja1xuLy8gc29uIGxvcyBwcmltZXJvcyAyMDAgY2hhcnMgZGVsIHJldG9ybm8gY3J1ZG8sIGFzw60gcXVlIGxvIHF1ZSBzZSBtb3N0cmFiYSBlcmFcbi8vIGVsIGVuY2FiZXphZG8gaW50ZXJubyBkZWwgcGF5bG9hZCAoXCJEQVRPUyBERSBQUk9ZRUNUT1wiKTogcmVkdW5kYW50ZSBjb24gZWxcbi8vIGxhYmVsIHkgYXVzZW50ZSBlbiBsYXMgdG9vbHMgcXVlIGRldnVlbHZlbiBKU09OLlxuLy8gUEVORElFTlRFOiBkZWZpbmlyIHF1w6kgbW9zdHJhciBhY8OhIG8gZGVqYXIgZGUgZW1pdGlyIGByZXN1bHRfcHJldmlld2AgZW4gZWwgYmFjay5cbi8vIGNvbnN0IGNsZWFuUHJldmlldyA9IChwcmV2aWV3OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuLy8gICBpZiAoIXByZXZpZXcpIHJldHVybiAnJ1xuLy8gICByZXR1cm4gcHJldmlld1xuLy8gICAgIC5yZXBsYWNlKC9eW1xccz1cXC1fKiN8fl0rLywgJycpXG4vLyAgICAgLnNwbGl0KCdcXG4nKVswXVxuLy8gICAgIC50cmltKClcbi8vIH1cbi8vXG4vLyBjb25zdCBpc01lYW5pbmdmdWxQcmV2aWV3ID0gKHByZXZpZXc6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuLy8gICBjb25zdCBjbGVhbmVkID0gY2xlYW5QcmV2aWV3KHByZXZpZXcpXG4vLyAgIGlmIChjbGVhbmVkLmxlbmd0aCA8IDIpIHJldHVybiBmYWxzZVxuLy8gICBpZiAoY2xlYW5lZC5zdGFydHNXaXRoKCd7JykgfHwgY2xlYW5lZC5zdGFydHNXaXRoKCdbJykpIHJldHVybiBmYWxzZVxuLy8gICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfV0vZ3UsICcnKS5sZW5ndGggPj0gMlxuLy8gfVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nQmxvY2sgPSAoeyBtZXNzYWdlSWQsIHRyYWNlIH06IFJlYXNvbmluZ0Jsb2NrUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGxpdmVUcmFjZSA9IHVzZVJlYXNvbmluZ1RyYWNlKG1lc3NhZ2VJZClcbiAgLy8gRXN0ZSBibG9xdWUgcmVlbXBsYXphIGFsIHRpbWVsaW5lIGVuIHZpdm8gY3VhbmRvIGVsIHR1cm5vIGNpZXJyYTogc2kgaGF5XG4gIC8vIHNuYXBzaG90IHByb3BpbyB5YSB0ZXJtaW5hZG8sIG1vbnRhIGV4cGFuZGlkbyB5IHNlIHBsaWVnYSBzb2xvLCBhc8OtIHNlIHZlXG4gIC8vIGVsIHRyYXNwYXNvLiBMb3MgbWVuc2FqZXMgZGVsIGhpc3TDs3JpY28gbm8gdGllbmVuIHNuYXBzaG90ID0+IGNvbGFwc2Fkb3MuXG4gIGNvbnN0IHRvb2tPdmVyRnJvbUxpdmUgPSB1c2VSZWYobGl2ZVRyYWNlLnBoYXNlID09PSAnZG9uZScgJiYgbGl2ZVRyYWNlLnN0ZXBzLmxlbmd0aCA+IDApXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKHRvb2tPdmVyRnJvbUxpdmUuY3VycmVudClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdG9va092ZXJGcm9tTGl2ZS5jdXJyZW50KSByZXR1cm4gdW5kZWZpbmVkXG4gICAgY29uc3QgdGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0SXNFeHBhbmRlZChmYWxzZSksIEFVVE9fQ09MTEFQU0VfREVMQVlfTVMpXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKVxuICB9LCBbXSlcblxuICBjb25zdCBsaXZlU3RlcHMgPSBsaXZlVHJhY2Uuc3RlcHNcbiAgY29uc3QgZWZmZWN0aXZlU3VtbWFyeSA9XG4gICAgbGl2ZVRyYWNlLnN1bW1hcnkgPz8gdHJhY2U/LnN1bW1hcnkgPz8gKGxpdmVTdGVwcy5sZW5ndGggPyBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5KGxpdmVTdGVwcykgOiBudWxsKVxuXG4gIGNvbnN0IGV4cGFuZGVkU3RlcHMgPSB1c2VNZW1vKFxuICAgICgpID0+IChsaXZlU3RlcHMubGVuZ3RoID4gMCA/IGxpdmVTdGVwcyA6ICh0cmFjZT8uc3RlcHMgPz8gW10pKS5maWx0ZXIoaXNWaXNpYmxlU3RlcCksXG4gICAgW2xpdmVTdGVwcywgdHJhY2VdXG4gIClcblxuICAvLyBFbCBhdXRvLWNvbGxhcHNlIGRlbCB0cmFzcGFzbyBubyBwYXNhIHBvciBhY8OhOiBzb2xvIHNlIHRyYWNrZWEgZWwgdG9nZ2xlIG1hbnVhbC5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUaGlua2luZywgeyBvcHRpb246IGlzRXhwYW5kZWQgPyAnY2xvc2UnIDogJ29wZW4nIH0pXG4gICAgc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZClcbiAgfSwgW2V2ZW50QW1wbGl0dWRlLCBpc0V4cGFuZGVkXSlcblxuICBpZiAoIWV4cGFuZGVkU3RlcHMubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGFjdGlvbkNvdW50ID0gZGVyaXZlUmVhc29uaW5nU3VtbWFyeShleHBhbmRlZFN0ZXBzKS50b29sQ291bnRcbiAgY29uc3QgZHVyYXRpb25MYWJlbCA9XG4gICAgZWZmZWN0aXZlU3VtbWFyeT8uZHVyYXRpb25NcyAhPT0gdW5kZWZpbmVkXG4gICAgICA/IGZvcm1hdEFjdGl2aXR5RWxhcHNlZChNYXRoLm1heCgxLCBNYXRoLnJvdW5kKGVmZmVjdGl2ZVN1bW1hcnkuZHVyYXRpb25NcyAvIDEwMDApKSlcbiAgICAgIDogbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPFNDUmVhc29uaW5nQmxvY2s+XG4gICAgICA8U0NTdW1tYXJ5VG9nZ2xlXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUb2dnbGV9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgIHRpdGxlPXtpc0V4cGFuZGVkID8gdCgnY2hhdC5yZWFzb25pbmcuY29sbGFwc2UnKSA6IHQoJ2NoYXQucmVhc29uaW5nLmV4cGFuZCcpfVxuICAgICAgPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7ZHVyYXRpb25MYWJlbCA/IHQoJ2NoYXQucmVhc29uaW5nLnRob3VnaHRGb3InLCB7IGR1cmF0aW9uOiBkdXJhdGlvbkxhYmVsIH0pIDogdCgnY2hhdC5yZWFzb25pbmcudGhvdWdodCcpfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIHthY3Rpb25Db3VudCA+IDAgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1zZXBhcmF0b3JcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3QoJ2NoYXQucmVhc29uaW5nLmFjdGlvbkNvdW50JywgeyBjb3VudDogYWN0aW9uQ291bnQgfSl9PC9zcGFuPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1jaGV2cm9uXCIgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgPENoZXZyb25SaWdodCBjb2xvcj1cImN1cnJlbnRDb2xvclwiIHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L1NDU3VtbWFyeVRvZ2dsZT5cblxuICAgICAgPFNDVHJhY2VDb2xsYXBzZSAkaXNPcGVuPXtpc0V4cGFuZGVkfSBhcmlhLWhpZGRlbj17IWlzRXhwYW5kZWR9PlxuICAgICAgICA8U0NFeHBhbmRlZFRyYWNlICRpc09wZW49e2lzRXhwYW5kZWR9PlxuICAgICAgICAgIDxTdGVwTGlzdCBzdGVwcz17ZXhwYW5kZWRTdGVwc30gdD17dH0gLz5cbiAgICAgICAgICB7ZWZmZWN0aXZlU3VtbWFyeT8udHJ1bmNhdGVkICYmIDxTQ1RyYWNlTm90ZT57dCgnY2hhdC5yZWFzb25pbmcudHJ1bmNhdGVkJyl9PC9TQ1RyYWNlTm90ZT59XG4gICAgICAgIDwvU0NFeHBhbmRlZFRyYWNlPlxuICAgICAgPC9TQ1RyYWNlQ29sbGFwc2U+XG4gICAgPC9TQ1JlYXNvbmluZ0Jsb2NrPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDaEYsU0FBU0MsWUFBWSxRQUFRLCtDQUErQztBQUU1RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyxpQkFBaUIsUUFBUSxrQ0FBa0M7QUFDcEUsU0FBU0MscUJBQXFCLFFBQVEsd0RBQXdEO0FBQzlGLFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUV4RSxTQUFTQyxhQUFhLEVBQUVDLFFBQVEsUUFBUSxrQkFBa0I7QUFD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
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiQ2hldnJvblJpZ2h0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlUmVhc29uaW5nVHJhY2UiLCJmb3JtYXRBY3Rpdml0eUVsYXBzZWQiLCJkZXJpdmVSZWFzb25pbmdTdW1tYXJ5IiwiaXNWaXNpYmxlU3RlcCIsIlN0ZXBMaXN0IiwiU0NFeHBhbmRlZFRyYWNlIiwiU0NSZWFzb25pbmdCbG9jayIsIlNDU3VtbWFyeVRvZ2dsZSIsIlNDVHJhY2VDb2xsYXBzZSIsIlNDVHJhY2VOb3RlIiwidXNlQ29sbGFwc2libGVIZWlnaHQiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJBVVRPX0NPTExBUFNFX0RFTEFZX01TIiwiUmVhc29uaW5nQmxvY2siLCJfcmVmIiwiX3JlZjIiLCJfbGl2ZVRyYWNlJHN1bW1hcnkiLCJtZXNzYWdlSWQiLCJ0cmFjZSIsIl91c2VUIiwidCIsImV2ZW50QW1wbGl0dWRlIiwibGl2ZVRyYWNlIiwidG9va092ZXJGcm9tTGl2ZSIsInBoYXNlIiwic3RlcHMiLCJsZW5ndGgiLCJfdXNlU3RhdGUiLCJjdXJyZW50IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJfdXNlQ29sbGFwc2libGVIZWlnaHQiLCJpbm5lclJlZiIsImhlaWdodCIsInVuZGVmaW5lZCIsInRpbWVvdXRJZCIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJsaXZlU3RlcHMiLCJlZmZlY3RpdmVTdW1tYXJ5Iiwic3VtbWFyeSIsImV4cGFuZGVkU3RlcHMiLCJfdHJhY2Ukc3RlcHMiLCJmaWx0ZXIiLCJoYW5kbGVUb2dnbGUiLCJhaUNoYXRUaGlua2luZyIsIm9wdGlvbiIsImFjdGlvbkNvdW50IiwidG9vbENvdW50IiwiZHVyYXRpb25MYWJlbCIsImR1cmF0aW9uTXMiLCJNYXRoIiwibWF4Iiwicm91bmQiLCJjaGlsZHJlbiIsInR5cGUiLCJvbkNsaWNrIiwidGl0bGUiLCJkdXJhdGlvbiIsImNsYXNzTmFtZSIsImNvdW50IiwiY29sb3IiLCJ3aWR0aCIsIiRoZWlnaHQiLCJyZWYiLCIkaXNPcGVuIiwidHJ1bmNhdGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nQmxvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uUmlnaHQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uUmlnaHQnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlUmVhc29uaW5nVHJhY2UgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZWFzb25pbmdUcmFjZSdcbmltcG9ydCB7IGZvcm1hdEFjdGl2aXR5RWxhcHNlZCB9IGZyb20gJy4uL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IvQWdlbnRBY3Rpdml0eUluZGljYXRvci51dGlscydcbmltcG9ydCB7IGRlcml2ZVJlYXNvbmluZ1N1bW1hcnkgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWFzb25pbmdNYXBwZXJzJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdUcmFjZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAsIFN0ZXBMaXN0IH0gZnJvbSAnLi9SZWFzb25pbmdTdGVwcydcbmltcG9ydCB7XG4gIFNDRXhwYW5kZWRUcmFjZSxcbiAgU0NSZWFzb25pbmdCbG9jayxcbiAgU0NTdW1tYXJ5VG9nZ2xlLFxuICBTQ1RyYWNlQ29sbGFwc2UsXG4gIFNDVHJhY2VOb3RlLFxufSBmcm9tICcuL1JlYXNvbmluZ0Jsb2NrLnN0eWxlcydcbmltcG9ydCB7IHVzZUNvbGxhcHNpYmxlSGVpZ2h0IH0gZnJvbSAnLi91c2VDb2xsYXBzaWJsZUhlaWdodCdcblxuLyoqIFRpZW1wbyBxdWUgcXVlZGEgdmlzaWJsZSBlbCBkZXRhbGxlIGFudGVzIGRlIHBsZWdhcnNlIHNvbG8gYWwgdGVybWluYXIgZWwgdHVybm8uICovXG5jb25zdCBBVVRPX0NPTExBUFNFX0RFTEFZX01TID0gOTAwXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ0Jsb2NrUHJvcHMgPSB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nXG4gIHRyYWNlPzogUmVhc29uaW5nVHJhY2UgfCBudWxsXG59XG5cbi8vIFByZXZpZXcgZGVsIHJlc3VsdGFkbyBkZSBsYSB0b29sOiBkZXNoYWJpbGl0YWRvLiBFbCBgcmVzdWx0X3ByZXZpZXdgIGRlbCBiYWNrXG4vLyBzb24gbG9zIHByaW1lcm9zIDIwMCBjaGFycyBkZWwgcmV0b3JubyBjcnVkbywgYXPDrSBxdWUgbG8gcXVlIHNlIG1vc3RyYWJhIGVyYVxuLy8gZWwgZW5jYWJlemFkbyBpbnRlcm5vIGRlbCBwYXlsb2FkIChcIkRBVE9TIERFIFBST1lFQ1RPXCIpOiByZWR1bmRhbnRlIGNvbiBlbFxuLy8gbGFiZWwgeSBhdXNlbnRlIGVuIGxhcyB0b29scyBxdWUgZGV2dWVsdmVuIEpTT04uXG4vLyBQRU5ESUVOVEU6IGRlZmluaXIgcXXDqSBtb3N0cmFyIGFjw6EgbyBkZWphciBkZSBlbWl0aXIgYHJlc3VsdF9wcmV2aWV3YCBlbiBlbCBiYWNrLlxuLy8gY29uc3QgY2xlYW5QcmV2aWV3ID0gKHByZXZpZXc6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG4vLyAgIGlmICghcHJldmlldykgcmV0dXJuICcnXG4vLyAgIHJldHVybiBwcmV2aWV3XG4vLyAgICAgLnJlcGxhY2UoL15bXFxzPVxcLV8qI3x+XSsvLCAnJylcbi8vICAgICAuc3BsaXQoJ1xcbicpWzBdXG4vLyAgICAgLnRyaW0oKVxuLy8gfVxuLy9cbi8vIGNvbnN0IGlzTWVhbmluZ2Z1bFByZXZpZXcgPSAocHJldmlldzogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiB7XG4vLyAgIGNvbnN0IGNsZWFuZWQgPSBjbGVhblByZXZpZXcocHJldmlldylcbi8vICAgaWYgKGNsZWFuZWQubGVuZ3RoIDwgMikgcmV0dXJuIGZhbHNlXG4vLyAgIGlmIChjbGVhbmVkLnN0YXJ0c1dpdGgoJ3snKSB8fCBjbGVhbmVkLnN0YXJ0c1dpdGgoJ1snKSkgcmV0dXJuIGZhbHNlXG4vLyAgIHJldHVybiBjbGVhbmVkLnJlcGxhY2UoL1teXFxwe0x9XFxwe059XS9ndSwgJycpLmxlbmd0aCA+PSAyXG4vLyB9XG5cbmV4cG9ydCBjb25zdCBSZWFzb25pbmdCbG9jayA9ICh7IG1lc3NhZ2VJZCwgdHJhY2UgfTogUmVhc29uaW5nQmxvY2tQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgbGl2ZVRyYWNlID0gdXNlUmVhc29uaW5nVHJhY2UobWVzc2FnZUlkKVxuICAvLyBFc3RlIGJsb3F1ZSByZWVtcGxhemEgYWwgdGltZWxpbmUgZW4gdml2byBjdWFuZG8gZWwgdHVybm8gY2llcnJhOiBzaSBoYXlcbiAgLy8gc25hcHNob3QgcHJvcGlvIHlhIHRlcm1pbmFkbywgbW9udGEgZXhwYW5kaWRvIHkgc2UgcGxpZWdhIHNvbG8sIGFzw60gc2UgdmVcbiAgLy8gZWwgdHJhc3Bhc28uIExvcyBtZW5zYWplcyBkZWwgaGlzdMOzcmljbyBubyB0aWVuZW4gc25hcHNob3QgPT4gY29sYXBzYWRvcy5cbiAgY29uc3QgdG9va092ZXJGcm9tTGl2ZSA9IHVzZVJlZihsaXZlVHJhY2UucGhhc2UgPT09ICdkb25lJyAmJiBsaXZlVHJhY2Uuc3RlcHMubGVuZ3RoID4gMClcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUodG9va092ZXJGcm9tTGl2ZS5jdXJyZW50KVxuICBjb25zdCB7IGlubmVyUmVmLCBoZWlnaHQgfSA9IHVzZUNvbGxhcHNpYmxlSGVpZ2h0KGlzRXhwYW5kZWQpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRvb2tPdmVyRnJvbUxpdmUuY3VycmVudCkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNldElzRXhwYW5kZWQoZmFsc2UpLCBBVVRPX0NPTExBUFNFX0RFTEFZX01TKVxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgfSwgW10pXG5cbiAgY29uc3QgbGl2ZVN0ZXBzID0gbGl2ZVRyYWNlLnN0ZXBzXG4gIGNvbnN0IGVmZmVjdGl2ZVN1bW1hcnkgPVxuICAgIGxpdmVUcmFjZS5zdW1tYXJ5ID8/IHRyYWNlPy5zdW1tYXJ5ID8/IChsaXZlU3RlcHMubGVuZ3RoID8gZGVyaXZlUmVhc29uaW5nU3VtbWFyeShsaXZlU3RlcHMpIDogbnVsbClcblxuICBjb25zdCBleHBhbmRlZFN0ZXBzID0gdXNlTWVtbyhcbiAgICAoKSA9PiAobGl2ZVN0ZXBzLmxlbmd0aCA+IDAgPyBsaXZlU3RlcHMgOiAodHJhY2U/LnN0ZXBzID8/IFtdKSkuZmlsdGVyKGlzVmlzaWJsZVN0ZXApLFxuICAgIFtsaXZlU3RlcHMsIHRyYWNlXVxuICApXG5cbiAgLy8gRWwgYXV0by1jb2xsYXBzZSBkZWwgdHJhc3Bhc28gbm8gcGFzYSBwb3IgYWPDoTogc29sbyBzZSB0cmFja2VhIGVsIHRvZ2dsZSBtYW51YWwuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VGhpbmtpbmcsIHsgb3B0aW9uOiBpc0V4cGFuZGVkID8gJ2Nsb3NlJyA6ICdvcGVuJyB9KVxuICAgIHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaXNFeHBhbmRlZF0pXG5cbiAgaWYgKCFleHBhbmRlZFN0ZXBzLmxlbmd0aCkgcmV0dXJuIG51bGxcblxuICBjb25zdCBhY3Rpb25Db3VudCA9IGRlcml2ZVJlYXNvbmluZ1N1bW1hcnkoZXhwYW5kZWRTdGVwcykudG9vbENvdW50XG4gIGNvbnN0IGR1cmF0aW9uTGFiZWwgPVxuICAgIGVmZmVjdGl2ZVN1bW1hcnk/LmR1cmF0aW9uTXMgIT09IHVuZGVmaW5lZFxuICAgICAgPyBmb3JtYXRBY3Rpdml0eUVsYXBzZWQoTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChlZmZlY3RpdmVTdW1tYXJ5LmR1cmF0aW9uTXMgLyAxMDAwKSkpXG4gICAgICA6IG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1JlYXNvbmluZ0Jsb2NrPlxuICAgICAgPFNDU3VtbWFyeVRvZ2dsZVxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlfVxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICB0aXRsZT17aXNFeHBhbmRlZCA/IHQoJ2NoYXQucmVhc29uaW5nLmNvbGxhcHNlJykgOiB0KCdjaGF0LnJlYXNvbmluZy5leHBhbmQnKX1cbiAgICAgID5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge2R1cmF0aW9uTGFiZWwgPyB0KCdjaGF0LnJlYXNvbmluZy50aG91Z2h0Rm9yJywgeyBkdXJhdGlvbjogZHVyYXRpb25MYWJlbCB9KSA6IHQoJ2NoYXQucmVhc29uaW5nLnRob3VnaHQnKX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7YWN0aW9uQ291bnQgPiAwICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stc2VwYXJhdG9yXCIgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgIC1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt0KCdjaGF0LnJlYXNvbmluZy5hY3Rpb25Db3VudCcsIHsgY291bnQ6IGFjdGlvbkNvdW50IH0pfTwvc3Bhbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stY2hldnJvblwiIGFyaWEtaGlkZGVuPlxuICAgICAgICAgIDxDaGV2cm9uUmlnaHQgY29sb3I9XCJjdXJyZW50Q29sb3JcIiB3aWR0aD1cIjE0cHhcIiBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9TQ1N1bW1hcnlUb2dnbGU+XG5cbiAgICAgIDxTQ1RyYWNlQ29sbGFwc2UgJGhlaWdodD17aGVpZ2h0fSBhcmlhLWhpZGRlbj17IWlzRXhwYW5kZWR9PlxuICAgICAgICA8U0NFeHBhbmRlZFRyYWNlIHJlZj17aW5uZXJSZWZ9ICRpc09wZW49e2lzRXhwYW5kZWR9PlxuICAgICAgICAgIDxTdGVwTGlzdCBzdGVwcz17ZXhwYW5kZWRTdGVwc30gdD17dH0gLz5cbiAgICAgICAgICB7ZWZmZWN0aXZlU3VtbWFyeT8udHJ1bmNhdGVkICYmIDxTQ1RyYWNlTm90ZT57dCgnY2hhdC5yZWFzb25pbmcudHJ1bmNhdGVkJyl9PC9TQ1RyYWNlTm90ZT59XG4gICAgICAgIDwvU0NFeHBhbmRlZFRyYWNlPlxuICAgICAgPC9TQ1RyYWNlQ29sbGFwc2U+XG4gICAgPC9TQ1JlYXNvbmluZ0Jsb2NrPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDaEYsU0FBU0MsWUFBWSxRQUFR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QUFLLEVBQUU3QixVQUFVLEdBQUdYLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHQSxDQUFDLENBQUMsdUJBQXVCLENBQUU7TUFBQXFDLFFBQUEsZ0JBRTlFbEQsSUFBQTtRQUFBa0QsUUFBQSxFQUNHTCxhQUFhLEdBQUdoQyxDQUFDLENBQUMsMkJBQTJCLEVBQUU7VUFBRXlDLFFBQVEsRUFBRVQ7UUFBYyxDQUFDLENBQUMsR0FBR2hDLENBQUMsQ0FBQyx3QkFBd0I7TUFBQyxDQUN0RyxDQUFDLEVBQ044QixXQUFXLEdBQUcsQ0FBQyxpQkFDZHZDLEtBQUEsQ0FBQUYsU0FBQTtRQUFBZ0QsUUFBQSxnQkFDRWxELElBQUE7VUFBTXVELFNBQVMsRUFBQywwQkFBMEI7VUFBQyxtQkFBVztVQUFBTCxRQUFBLEVBQUM7UUFFdkQsQ0FBTSxDQUFDLGVBQ1BsRCxJQUFBO1VBQUFrRCxRQUFBLEVBQU9yQyxDQUFDLENBQUMsNEJBQTRCLEVBQUU7WUFBRTJDLEtBQUssRUFBRWI7VUFBWSxDQUFDO1FBQUMsQ0FBTyxDQUFDO01BQUEsQ0FDdEUsQ0FDSCxlQUNEM0MsSUFBQTtRQUFNdUQsU0FBUyxFQUFDLHdCQUF3QjtRQUFDLG1CQUFXO1FBQUFMLFFBQUEsZUFDbERsRCxJQUFBLENBQUNoQixZQUFZO1VBQUN5RSxLQUFLLEVBQUMsY0FBYztVQUFDQyxLQUFLLEVBQUMsTUFBTTtVQUFDOUIsTUFBTSxFQUFDO1FBQU0sQ0FBRTtNQUFDLENBQzVELENBQUM7SUFBQSxDQUNRLENBQUMsZUFFbEI1QixJQUFBLENBQUNKLGVBQWU7TUFBQytELE9BQU8sRUFBRS9CLE1BQU87TUFBQyxlQUFhLENBQUNKLFVBQVc7TUFBQTBCLFFBQUEsZUFDekQ5QyxLQUFBLENBQUNYLGVBQWU7UUFBQ21FLEdBQUcsRUFBRWpDLFFBQVM7UUFBQ2tDLE9BQU8sRUFBRXJDLFVBQVc7UUFBQTBCLFFBQUEsZ0JBQ2xEbEQsSUFBQSxDQUFDUixRQUFRO1VBQUMwQixLQUFLLEVBQUVtQixhQUFjO1VBQUN4QixDQUFDLEVBQUVBO1FBQUUsQ0FBRSxDQUFDLEVBQ3ZDLENBQUFzQixnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFMkIsU0FBUyxrQkFBSTlELElBQUEsQ0FBQ0gsV0FBVztVQUFBcUQsUUFBQSxFQUFFckMsQ0FBQyxDQUFDLDBCQUEwQjtRQUFDLENBQWMsQ0FBQztNQUFBLENBQzNFO0lBQUMsQ0FDSCxDQUFDO0VBQUEsQ0FDRixDQUFDO0FBRXZCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,69 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { ReasoningBlock } from './ReasoningBlock';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ jest.mock('../MaiaStreamdown/MaiaStreamdown', function () {
5
+ return {
6
+ MaiaStreamdown: function MaiaStreamdown(_ref) {
7
+ var children = _ref.children;
8
+ return /*#__PURE__*/_jsx("div", {
9
+ children: children
10
+ });
11
+ }
12
+ };
13
+ });
14
+ jest.mock('../../../hooks/useEvent', function () {
15
+ return {
16
+ EVENTS: {
17
+ aiChatThinking: 'AI_CHAT_THINKING'
18
+ },
19
+ useEvent: function useEvent() {
20
+ return jest.fn();
21
+ }
22
+ };
23
+ });
24
+ describe('ReasoningBlock', function () {
25
+ it('returns null without visible steps', function () {
26
+ var _renderWithProviders = renderWithProviders(/*#__PURE__*/_jsx(ReasoningBlock, {
27
+ messageId: "m1",
28
+ trace: {
29
+ steps: [{
30
+ i: 0,
31
+ type: 'thinking',
32
+ text: '...'
33
+ }],
34
+ summary: {
35
+ stepCount: 1,
36
+ toolCount: 0
37
+ }
38
+ }
39
+ })),
40
+ container = _renderWithProviders.container;
41
+ expect(container).toBeEmptyDOMElement();
42
+ });
43
+ it('toggles the expanded trace', function () {
44
+ renderWithProviders(/*#__PURE__*/_jsx(ReasoningBlock, {
45
+ messageId: "m1",
46
+ trace: {
47
+ steps: [{
48
+ i: 0,
49
+ type: 'narration',
50
+ text: 'Revisando'
51
+ }, {
52
+ i: 1,
53
+ type: 'tool',
54
+ tool: 'edit_task'
55
+ }],
56
+ summary: {
57
+ stepCount: 2,
58
+ toolCount: 1
59
+ }
60
+ }
61
+ }));
62
+ var toggle = screen.getByRole('button');
63
+ expect(toggle).toHaveAttribute('aria-expanded', 'false');
64
+ fireEvent.click(toggle);
65
+ expect(toggle).toHaveAttribute('aria-expanded', 'true');
66
+ expect(screen.getByText('Revisando')).toBeInTheDocument();
67
+ });
68
+ });
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiUmVhc29uaW5nQmxvY2siLCJqc3giLCJfanN4IiwiamVzdCIsIm1vY2siLCJNYWlhU3RyZWFtZG93biIsIl9yZWYiLCJjaGlsZHJlbiIsIkVWRU5UUyIsImFpQ2hhdFRoaW5raW5nIiwidXNlRXZlbnQiLCJmbiIsImRlc2NyaWJlIiwiaXQiLCJfcmVuZGVyV2l0aFByb3ZpZGVycyIsIm1lc3NhZ2VJZCIsInRyYWNlIiwic3RlcHMiLCJpIiwidHlwZSIsInRleHQiLCJzdW1tYXJ5Iiwic3RlcENvdW50IiwidG9vbENvdW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUVtcHR5RE9NRWxlbWVudCIsInRvb2wiLCJ0b2dnbGUiLCJnZXRCeVJvbGUiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJjbGljayIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nQmxvY2suc3BlYy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXJXaXRoUHJvdmlkZXJzLCBzY3JlZW4gfSBmcm9tICcuLi8uLi8uLi90ZXN0L3Rlc3QtdXRpbHMnXG5pbXBvcnQgeyBSZWFzb25pbmdCbG9jayB9IGZyb20gJy4vUmVhc29uaW5nQmxvY2snXG5cbmplc3QubW9jaygnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nLCAoKSA9PiAoe1xuICBNYWlhU3RyZWFtZG93bjogKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbj86IHN0cmluZyB9KSA9PiA8ZGl2PntjaGlsZHJlbn08L2Rpdj4sXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcsICgpID0+ICh7XG4gIEVWRU5UUzogeyBhaUNoYXRUaGlua2luZzogJ0FJX0NIQVRfVEhJTktJTkcnIH0sXG4gIHVzZUV2ZW50OiAoKSA9PiBqZXN0LmZuKCksXG59KSlcblxuZGVzY3JpYmUoJ1JlYXNvbmluZ0Jsb2NrJywgKCkgPT4ge1xuICBpdCgncmV0dXJucyBudWxsIHdpdGhvdXQgdmlzaWJsZSBzdGVwcycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyV2l0aFByb3ZpZGVycyhcbiAgICAgIDxSZWFzb25pbmdCbG9ja1xuICAgICAgICBtZXNzYWdlSWQ9XCJtMVwiXG4gICAgICAgIHRyYWNlPXt7IHN0ZXBzOiBbeyBpOiAwLCB0eXBlOiAndGhpbmtpbmcnLCB0ZXh0OiAnLi4uJyB9XSwgc3VtbWFyeTogeyBzdGVwQ291bnQ6IDEsIHRvb2xDb3VudDogMCB9IH19XG4gICAgICAvPlxuICAgIClcblxuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVFbXB0eURPTUVsZW1lbnQoKVxuICB9KVxuXG4gIGl0KCd0b2dnbGVzIHRoZSBleHBhbmRlZCB0cmFjZScsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPFJlYXNvbmluZ0Jsb2NrXG4gICAgICAgIG1lc3NhZ2VJZD1cIm0xXCJcbiAgICAgICAgdHJhY2U9e3tcbiAgICAgICAgICBzdGVwczogW1xuICAgICAgICAgICAgeyBpOiAwLCB0eXBlOiAnbmFycmF0aW9uJywgdGV4dDogJ1JldmlzYW5kbycgfSxcbiAgICAgICAgICAgIHsgaTogMSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZWRpdF90YXNrJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3VtbWFyeTogeyBzdGVwQ291bnQ6IDIsIHRvb2xDb3VudDogMSB9LFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApXG5cbiAgICBjb25zdCB0b2dnbGUgPSBzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nKVxuICAgIGV4cGVjdCh0b2dnbGUpLnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpXG5cbiAgICBmaXJlRXZlbnQuY2xpY2sodG9nZ2xlKVxuICAgIGV4cGVjdCh0b2dnbGUpLnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJylcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnUmV2aXNhbmRvJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDakYsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUVqREMsSUFBSSxDQUFDQyxJQUFJLENBQUMsa0NBQWtDLEVBQUU7RUFBQSxPQUFPO0lBQ25EQyxjQUFjLEVBQUUsU0FBaEJBLGNBQWNBLENBQUFDLElBQUE7TUFBQSxJQUFLQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtNQUFBLG9CQUE4QkwsSUFBQTtRQUFBSyxRQUFBLEVBQU1BO01BQVEsQ0FBTSxDQUFDO0lBQUE7RUFDaEYsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVISixJQUFJLENBQUNDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtFQUFBLE9BQU87SUFDMUNJLE1BQU0sRUFBRTtNQUFFQyxjQUFjLEVBQUU7SUFBbUIsQ0FBQztJQUM5Q0MsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7TUFBQSxPQUFRUCxJQUFJLENBQUNRLEVBQUUsQ0FBQyxDQUFDO0lBQUE7RUFDM0IsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVIQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsWUFBTTtFQUMvQkMsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLFlBQU07SUFDN0MsSUFBQUMsb0JBQUEsR0FBc0JoQixtQkFBbUIsY0FDdkNJLElBQUEsQ0FBQ0YsY0FBYztRQUNiZSxTQUFTLEVBQUMsSUFBSTtRQUNkQyxLQUFLLEVBQUU7VUFBRUMsS0FBSyxFQUFFLENBQUM7WUFBRUMsQ0FBQyxFQUFFLENBQUM7WUFBRUMsSUFBSSxFQUFFLFVBQVU7WUFBRUMsSUFBSSxFQUFFO1VBQU0sQ0FBQyxDQUFDO1VBQUVDLE9BQU8sRUFBRTtZQUFFQyxTQUFTLEVBQUUsQ0FBQztZQUFFQyxTQUFTLEVBQUU7VUFBRTtRQUFFO01BQUUsQ0FDdEcsQ0FDSCxDQUFDO01BTE9DLFNBQVMsR0FBQVYsb0JBQUEsQ0FBVFUsU0FBUztJQU9qQkMsTUFBTSxDQUFDRCxTQUFTLENBQUMsQ0FBQ0UsbUJBQW1CLENBQUMsQ0FBQztFQUN6QyxDQUFDLENBQUM7RUFFRmIsRUFBRSxDQUFDLDRCQUE0QixFQUFFLFlBQU07SUFDckNmLG1CQUFtQixjQUNqQkksSUFBQSxDQUFDRixjQUFjO01BQ2JlLFNBQVMsRUFBQyxJQUFJO01BQ2RDLEtBQUssRUFBRTtRQUNMQyxLQUFLLEVBQUUsQ0FDTDtVQUFFQyxDQUFDLEVBQUUsQ0FBQztVQUFFQyxJQUFJLEVBQUUsV0FBVztVQUFFQyxJQUFJLEVBQUU7UUFBWSxDQUFDLEVBQzlDO1VBQUVGLENBQUMsRUFBRSxDQUFDO1VBQUVDLElBQUksRUFBRSxNQUFNO1VBQUVRLElBQUksRUFBRTtRQUFZLENBQUMsQ0FDMUM7UUFDRE4sT0FBTyxFQUFFO1VBQUVDLFNBQVMsRUFBRSxDQUFDO1VBQUVDLFNBQVMsRUFBRTtRQUFFO01BQ3hDO0lBQUUsQ0FDSCxDQUNILENBQUM7SUFFRCxJQUFNSyxNQUFNLEdBQUc3QixNQUFNLENBQUM4QixTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ3pDSixNQUFNLENBQUNHLE1BQU0sQ0FBQyxDQUFDRSxlQUFlLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztJQUV4RGpDLFNBQVMsQ0FBQ2tDLEtBQUssQ0FBQ0gsTUFBTSxDQUFDO0lBQ3ZCSCxNQUFNLENBQUNHLE1BQU0sQ0FBQyxDQUFDRSxlQUFlLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN2REwsTUFBTSxDQUFDMUIsTUFBTSxDQUFDaUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7RUFDM0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,10 +1,16 @@
1
1
  import styled, { css, keyframes } from 'styled-components';
2
2
  import colors from '@projectcor/theme/lib/base/colors';
3
+ import { REASONING_COLLAPSE_EASE, REASONING_COLLAPSE_MS } from './useCollapsibleHeight';
3
4
  export var LIVE_VIEWPORT_MAX_HEIGHT = 72;
4
5
  var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
5
6
  var fadeIn = keyframes(["from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:none;}"]);
6
7
  var stepReplace = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}"]);
7
8
 
9
+ /** Narración que pasa del body al bloque: desliza suave desde la izquierda. */
10
+ var narrationEnter = keyframes(["from{opacity:0;transform:translateX(-14px);}to{opacity:1;transform:none;}"]);
11
+ export var NARRATION_ENTER_MS = 680;
12
+ export var NARRATION_ENTER_EASE = 'cubic-bezier(0.22, 1, 0.36, 1)';
13
+
8
14
  /* Halo del paso en curso: lo distingue de los ya cerrados sin cambiar su tamaño. */
9
15
  var markerPulse = keyframes(["0%{box-shadow:0 0 0 0 rgba(32,32,32,0.28);}70%{box-shadow:0 0 0 5px rgba(32,32,32,0);}100%{box-shadow:0 0 0 0 rgba(32,32,32,0);}"]);
10
16
 
@@ -58,14 +64,18 @@ export var SCReasoningTimeline = styled.div.withConfig({
58
64
  componentId: "sc-y2psdb-2"
59
65
  })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
60
66
  var stepReplaceAnim = css(["animation:", " 0.24s ease-out both;"], stepReplace);
67
+ var narrationEnterAnim = css(["animation:", " ", "ms ", " both;@media (prefers-reduced-motion:reduce){animation:none;}"], narrationEnter, NARRATION_ENTER_MS, NARRATION_ENTER_EASE);
61
68
 
62
69
  /* Cada fila entra sola cuando llega su paso: sin delay escalonado (no es un listado que monta junto). */
63
70
  export var SCTimelineRow = styled.div.withConfig({
64
71
  displayName: "ReasoningBlockstyles__SCTimelineRow",
65
72
  componentId: "sc-y2psdb-3"
66
73
  })(["", ""], function (_ref) {
67
- var $seamless = _ref.$seamless;
68
- return $seamless ? css([""]) : stepReplaceAnim;
74
+ var $seamless = _ref.$seamless,
75
+ $narrationEnter = _ref.$narrationEnter;
76
+ if ($seamless) return css([""]);
77
+ if ($narrationEnter) return narrationEnterAnim;
78
+ return stepReplaceAnim;
69
79
  });
70
80
 
71
81
  /* Va debajo del cuerpo del mensaje: separa del texto y no deja aire sobrante abajo. */
@@ -159,29 +169,24 @@ export var SCParallelDetail = styled.div.withConfig({
159
169
  export var SCSummaryToggle = styled.button.withConfig({
160
170
  displayName: "ReasoningBlockstyles__SCSummaryToggle",
161
171
  componentId: "sc-y2psdb-12"
162
- })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform 200ms ease;}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main);
163
-
164
- /* height: auto <-> 0 sin medir el contenido: el track de grid interpola entre 0fr y 1fr. */
172
+ })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform ", "ms ", ";}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
165
173
  export var SCTraceCollapse = styled.div.withConfig({
166
174
  displayName: "ReasoningBlockstyles__SCTraceCollapse",
167
175
  componentId: "sc-y2psdb-13"
168
- })(["display:grid;grid-template-rows:", ";transition:grid-template-rows 240ms cubic-bezier(0.2,0,0,1);> *{min-height:0;overflow:hidden;}"], function (_ref13) {
169
- var $isOpen = _ref13.$isOpen;
170
- return $isOpen ? '1fr' : '0fr';
171
- });
176
+ })(["overflow:hidden;height:", ";transition:height ", "ms ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref13) {
177
+ var $height = _ref13.$height;
178
+ return $height === 'auto' ? 'auto' : "".concat($height, "px");
179
+ }, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
172
180
  export var SCExpandedTrace = styled.div.withConfig({
173
181
  displayName: "ReasoningBlockstyles__SCExpandedTrace",
174
182
  componentId: "sc-y2psdb-14"
175
- })(["display:flex;flex-direction:column;opacity:", ";padding-bottom:", ";transform:translateY(", ");transition:opacity 140ms ease-out,transform 140ms ease-out,padding 240ms cubic-bezier(0.2,0,0,1);"], function (_ref14) {
183
+ })(["display:flex;flex-direction:column;padding-bottom:24px;opacity:", ";transition:opacity ", " ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref14) {
176
184
  var $isOpen = _ref14.$isOpen;
177
185
  return $isOpen ? 1 : 0;
178
186
  }, function (_ref15) {
179
187
  var $isOpen = _ref15.$isOpen;
180
- return $isOpen ? '24px' : '0';
181
- }, function (_ref16) {
182
- var $isOpen = _ref16.$isOpen;
183
- return $isOpen ? '0' : '-4px';
184
- });
188
+ return $isOpen ? '280ms' : "280ms ".concat(REASONING_COLLAPSE_MS - 280, "ms");
189
+ }, REASONING_COLLAPSE_EASE);
185
190
  export var SCTraceNote = styled.p.withConfig({
186
191
  displayName: "ReasoningBlockstyles__SCTraceNote",
187
192
  componentId: "sc-y2psdb-15"
@@ -194,4 +199,4 @@ export var SCErrorRow = styled.div.withConfig({
194
199
  displayName: "ReasoningBlockstyles__SCErrorRow",
195
200
  componentId: "sc-y2psdb-17"
196
201
  })(["display:flex;align-items:center;gap:8px;font-size:12px;color:", ";button{border:none;background:none;padding:0;cursor:pointer;font-size:12px;text-decoration:underline;color:", ";}"], colors.text.mediumGray, colors.text.primary);
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaXNPcGVuIiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiX3JlZjE1IiwiX3JlZjE2IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAxNlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnOHB4JyA6ICcwJ1xufVxuXG5jb25zdCByYWlsQmVmb3JlRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIChyYWlsVGhyb3VnaCB8fCByYWlsVG9wKSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbEFmdGVyRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbEJvdHRvbT86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiByYWlsQm90dG9tID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsU2VnbWVudFN0eWxlID0gYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6ICR7TUFSS0VSX1JBSUxfTEVGVH1weDtcbiAgd2lkdGg6IDFweDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC4yNTtcbmBcblxuLyoqIEVsIHBhc28gYWN0aXZvIHZhIGEgY29sb3IgcGxlbm87IGxvcyBjZXJyYWRvcyBxdWVkYW4gYXRlbnVhZG9zLiAqL1xuY29uc3QgbWFya2VyQ29sb3IgPSAoc3RhdHVzPzogc3RyaW5nLCBpc0FjdGl2ZT86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gY29sb3JzLmVycm9yLm1haW5cbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gY29sb3JzLnRleHQucHJpbWFyeVxuICByZXR1cm4gY29sb3JzLnRleHQubWVkaXVtR3JheVxufVxuXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdCbG9jayA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBTaW4gZ2FwOiBlbCBlc3BhY2lvIGhhY2lhIGVsIGRldGFsbGUgdml2ZSBlbiBzdSBwYWRkaW5nLXRvcCwgYXPDrSBjb2xhcHNhIGp1bnRvIGNvbiDDqWwuICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xpdmVTdGVwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6ICR7TElWRV9WSUVXUE9SVF9NQVhfSEVJR0hUfXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjJzIGVhc2Utb3V0O1xuYFxuXG4vKiBUaW1lbGluZSBlbiB2aXZvOiBsb3MgcGFzb3Mgc2UgYXBpbGFuIGVuIHZleiBkZSByZWVtcGxhemFyc2UuICovXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdUaW1lbGluZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYFxuXG5jb25zdCBzdGVwUmVwbGFjZUFuaW0gPSBjc3NgXG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcbmBcblxuLyogQ2FkYSBmaWxhIGVudHJhIHNvbGEgY3VhbmRvIGxsZWdhIHN1IHBhc286IHNpbiBkZWxheSBlc2NhbG9uYWRvIChubyBlcyB1biBsaXN0YWRvIHF1ZSBtb250YSBqdW50bykuICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZVJvdyA9IHN0eWxlZC5kaXY8eyAkc2VhbWxlc3M/OiBib29sZWFuIH0+YFxuICAkeyh7ICRzZWFtbGVzcyB9KSA9PiAoJHNlYW1sZXNzID8gY3NzYGAgOiBzdGVwUmVwbGFjZUFuaW0pfVxuYFxuXG4vKiBWYSBkZWJham8gZGVsIGN1ZXJwbyBkZWwgbWVuc2FqZTogc2VwYXJhIGRlbCB0ZXh0byB5IG5vIGRlamEgYWlyZSBzb2JyYW50ZSBhYmFqby4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lSW5kaWNhdG9yID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuXG4gID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbmBcblxuLyoqIFJlc3B1ZXN0YSBmaW5hbCBlbiBzdHJlYW06IHNpbiBndXR0ZXIgZGUgbGEgdHJhemEsIGRlYmFqbyBkZWwgcmF6b25hbWllbnRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDRmluYWxBbnN3ZXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG5gXG5cbi8qIEVsIG1hcmtkb3duIGxvIHJlc3VlbHZlIE1haWFTdHJlYW1kb3duIChtaXNtbyB2YXJpYW50IHF1ZSBlbCBjdWVycG8gZGVsIG1lbnNhamUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGhpbmtpbmdUZXh0ID0gc3R5bGVkLmRpdjx7ICRtdXRlZD86IGJvb2xlYW4gfT5gXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAvKiBFbCB0aGlua2luZyAocmF6b25hbWllbnRvIGNydWRvKSB2YSBhdGVudWFkbyBwYXJhIGRpc3Rpbmd1aXJsbyBkZSBsYSBuYXJyYWNpw7NuLiAqL1xuICBvcGFjaXR5OiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gMC42IDogMSl9O1xuICBmb250LXN0eWxlOiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gJ2l0YWxpYycgOiAnbm9ybWFsJyl9O1xuYFxuXG4vKipcbiAqIEZpbGEgZGUgbGEgdHJhemEuIFNvbG8gbG9zIHBhc29zIGRlIGFjY2nDs24gKHRvb2wvaGFuZG9mZikgbGxldmFuIGPDrXJjdWxvOyBsYXNcbiAqIG5hcnJhY2lvbmVzICh0YW1iacOpbiBsYSBpbmljaWFsKSBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXNcbiAqIGF0cmF2aWVzZSBzaW4gcHVudG8uIEVsIHJhaWwgZGVqYSA0cHggZGUgc2VwYXJhY2nDs24gYW50ZXMgZGUgY2FkYSBjw61yY3Vsby5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDU3RlcFJvdyA9IHN0eWxlZC5kaXY8e1xuICAkc3RhdHVzPzogc3RyaW5nXG4gICRoYXNNYXJrZXI/OiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gICRpc0FjdGl2ZT86IGJvb2xlYW5cbiAgJHNob3dDaHJvbWU/OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaD86IGJvb2xlYW5cbiAgJHJhaWxUb3A/OiBib29sZWFuXG4gICRyYWlsQm90dG9tPzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/IGAke0dVVFRFUl9XSURUSH1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy10b3A6ICR7KHsgJGhhc01hcmtlciB9KSA9PiAoJGhhc01hcmtlciA/IGAke01BUktFUl9QQURESU5HX1l9cHhgIDogJzAnKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRoYXNNYXJrZXIsICRjb25uZWN0QmVsb3cgfSkgPT4gc3RlcFJvd1BhZGRpbmdCb3R0b20oJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyl9O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAkeyh7ICRyYWlsVGhyb3VnaCwgJHJhaWxUb3AgfSkgPT4gcmFpbEJlZm9yZUJvdHRvbSgkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20gfSkgPT4gcmFpbEFmdGVyRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20pfTtcbiAgICAke3JhaWxTZWdtZW50U3R5bGV9XG4gICAgdG9wOiAke01BUktFUl9SQUlMX0JPVFRPTV9TVEFSVH1weDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stbWFya2VyIHtcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICR7TUFSS0VSX1RPUH1weDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAke01BUktFUl9TSVpFfXB4O1xuICAgIGhlaWdodDogJHtNQVJLRVJfU0laRX1weDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHsoeyAkc3RhdHVzLCAkaXNBY3RpdmUgfSkgPT4gbWFya2VyQ29sb3IoJHN0YXR1cywgJGlzQWN0aXZlKX07XG4gICAgb3BhY2l0eTogJHsoeyAkaXNBY3RpdmUgfSkgPT4gKCRpc0FjdGl2ZSA/IDEgOiAwLjQ1KX07XG4gICAgYW5pbWF0aW9uOiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gbWFya2VyUHVsc2UgOiAnbm9uZScpfSAxLjZzIGVhc2Utb3V0IGluZmluaXRlO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbFN0ZXAgPSBzdHlsZWQuZGl2PHsgJHN0YXR1cz86IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICMyMDIwMjA7XG5cbiAgLlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJHsoeyAkc3RhdHVzIH0pID0+ICgkc3RhdHVzID09PSAnZXJyb3InID8gY29sb3JzLmVycm9yLm1haW4gOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stdG9vbFByZXZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ291bnQgPSBzdHlsZWQuc3BhbmBcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjODA4MDgwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NQYXJhbGxlbERldGFpbCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdW1tYXJ5VG9nZ2xlID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2U7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuMjRzIGVhc2Utb3V0O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gICY6ZGlzYWJsZWQgLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2NvbG9ycy5wcmltYXJ5Lm1haW59O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7XG4gIH1cblxuICAvKiBDb2xhcHNhZG8gYXB1bnRhIGEgbGEgZGVyZWNoYSAob3JpZW50YWNpw7NuIG5hdGl2YSBkZWwgaWNvbm8pOyBleHBhbmRpZG8sIGFycmliYS4gKi9cbiAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cblxuICAvKiBFbCBndWlvbiBlcyBwYXJ0ZSBkZWwgdGV4dG8gZW4gZWwgbWFxdWV0YWRvLCBubyB1biBzZXBhcmFkb3IgYXRlbnVhZG8uICovXG5gXG5cbi8qIGhlaWdodDogYXV0byA8LT4gMCBzaW4gbWVkaXIgZWwgY29udGVuaWRvOiBlbCB0cmFjayBkZSBncmlkIGludGVycG9sYSBlbnRyZSAwZnIgeSAxZnIuICovXG5leHBvcnQgY29uc3QgU0NUcmFjZUNvbGxhcHNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzFmcicgOiAnMGZyJyl9O1xuICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMjQwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG5cbiAgPiAqIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRXhwYW5kZWRUcmFjZSA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAxIDogMCl9O1xuICBwYWRkaW5nLWJvdHRvbTogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzI0cHgnIDogJzAnKX07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMCcgOiAnLTRweCcpfSk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAxNDBtcyBlYXNlLW91dCxcbiAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZS1vdXQsXG4gICAgcGFkZGluZyAyNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVHJhY2VOb3RlID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogOHB4IDAgMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICBvcGFjaXR5OiAwLjc1O1xuYFxuXG5leHBvcnQgY29uc3QgU0NMb2FkaW5nTGluZSA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wOCkgNTAlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke3NoaW1tZXJ9IDEuOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Vycm9yUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG5cbiAgYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLEVBQUU7QUFFMUMsSUFBTUMsT0FBTyxHQUFHSCxTQUFTLHVFQUd4QjtBQUVELElBQU1JLE1BQU0sR0FBR0osU0FBUyw4RUFHdkI7QUFFRCxJQUFNSyxXQUFXLEdBQUdMLFNBQVMsNkVBRzVCOztBQUVEO0FBQ0EsSUFBTU0sV0FBVyxHQUFHTixTQUFTLHNJQUk1Qjs7QUFFRDtBQUNBLElBQU1PLFdBQVcsR0FBRyxDQUFDO0FBQ3JCLElBQU1DLFlBQVksR0FBRyxFQUFFO0FBQ3ZCLElBQU1DLGdCQUFnQixHQUFHLENBQUM7QUFDMUI7QUFDQSxJQUFNQyxVQUFVLEdBQUdELGdCQUFnQixHQUFHLENBQUMsRUFBRSxHQUFHRixXQUFXLElBQUksQ0FBQztBQUM1RDtBQUNBLElBQU1JLGdCQUFnQixHQUFHLENBQUNKLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM5QztBQUNBLElBQU1LLFFBQVEsR0FBRyxDQUFDO0FBQ2xCLElBQU1DLG1CQUFtQixHQUFHSCxVQUFVLEdBQUdFLFFBQVE7QUFDakQsSUFBTUUs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
202
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJSRUFTT05JTkdfQ09MTEFQU0VfRUFTRSIsIlJFQVNPTklOR19DT0xMQVBTRV9NUyIsIkxJVkVfVklFV1BPUlRfTUFYX0hFSUdIVCIsInNoaW1tZXIiLCJmYWRlSW4iLCJzdGVwUmVwbGFjZSIsIm5hcnJhdGlvbkVudGVyIiwiTkFSUkFUSU9OX0VOVEVSX01TIiwiTkFSUkFUSU9OX0VOVEVSX0VBU0UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwibmFycmF0aW9uRW50ZXJBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCIkbmFycmF0aW9uRW50ZXIiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaGVpZ2h0IiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiJGlzT3BlbiIsIl9yZWYxNSIsIlNDVHJhY2VOb3RlIiwicCIsIlNDTG9hZGluZ0xpbmUiLCJTQ0Vycm9yUm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nQmxvY2suc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgUkVBU09OSU5HX0NPTExBUFNFX0VBU0UsIFJFQVNPTklOR19DT0xMQVBTRV9NUyB9IGZyb20gJy4vdXNlQ29sbGFwc2libGVIZWlnaHQnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiogTmFycmFjacOzbiBxdWUgcGFzYSBkZWwgYm9keSBhbCBibG9xdWU6IGRlc2xpemEgc3VhdmUgZGVzZGUgbGEgaXpxdWllcmRhLiAqL1xuY29uc3QgbmFycmF0aW9uRW50ZXIgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE0cHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG5gXG5cbmV4cG9ydCBjb25zdCBOQVJSQVRJT05fRU5URVJfTVMgPSA2ODBcbmV4cG9ydCBjb25zdCBOQVJSQVRJT05fRU5URVJfRUFTRSA9ICdjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSknXG5cbi8qIEhhbG8gZGVsIHBhc28gZW4gY3Vyc286IGxvIGRpc3Rpbmd1ZSBkZSBsb3MgeWEgY2VycmFkb3Mgc2luIGNhbWJpYXIgc3UgdGFtYcOxby4gKi9cbmNvbnN0IG1hcmtlclB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwLjI4KTsgfVxuICA3MCUgeyBib3gtc2hhZG93OiAwIDAgMCA1cHggcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDMyLCAzMiwgMzIsIDApOyB9XG5gXG5cbi8qKiBHdXR0ZXIgZG9uZGUgdml2ZW4gZWwgbWFyY2Fkb3IgeSBsYSBsw61uZWEgcXVlIHVuZSBsb3MgcGFzb3MuICovXG5jb25zdCBNQVJLRVJfU0laRSA9IDdcbmNvbnN0IEdVVFRFUl9XSURUSCA9IDE2XG5jb25zdCBNQVJLRVJfUEFERElOR19ZID0gNFxuLyogQ2VudHJhIGVsIG1hcmNhZG9yIGNvbiBsYSBwcmltZXJhIGzDrW5lYSBkZSB0ZXh0byAoMTZweCAqIDEuNSA9IDI0cHgpICsgcGFkZGluZyB2ZXJ0aWNhbC4gKi9cbmNvbnN0IE1BUktFUl9UT1AgPSBNQVJLRVJfUEFERElOR19ZICsgKDI0IC0gTUFSS0VSX1NJWkUpIC8gMlxuLyoqIENlbnRyYSBlbCByYWlsIGRlIDFweCBjb24gZWwgY8OtcmN1bG8gZGUgN3B4LiAqL1xuY29uc3QgTUFSS0VSX1JBSUxfTEVGVCA9IChNQVJLRVJfU0laRSAtIDEpIC8gMlxuLyoqIFNlcGFyYWNpw7NuIGVudHJlIGVsIHJhaWwgeSBlbCBib3JkZSBkZWwgY8OtcmN1bG8uICovXG5jb25zdCBSQUlMX0dBUCA9IDRcbmNvbnN0IE1BUktFUl9SQUlMX1RPUF9FTkQgPSBNQVJLRVJfVE9QIC0gUkFJTF9HQVBcbmNvbnN0IE1BUktFUl9SQUlMX0JPVFRPTV9TVEFSVCA9IE1BUktFUl9UT1AgKyBNQVJLRVJfU0laRSArIFJBSUxfR0FQXG5cbmNvbnN0IHJhaWxCZWZvcmVCb3R0b20gPSAocmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmIChyYWlsVGhyb3VnaCkgcmV0dXJuICcwJ1xuICBpZiAocmFpbFRvcCkgcmV0dXJuIGBjYWxjKDEwMCUgLSAke01BUktFUl9SQUlMX1RPUF9FTkR9cHgpYFxuICByZXR1cm4gJzAnXG59XG5cbmNvbnN0IHN0ZXBSb3dQYWRkaW5nQm90dG9tID0gKGhhc01hcmtlcj86IGJvb2xlYW4sIGNvbm5lY3RCZWxvdz86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoaGFzTWFya2VyKSByZXR1cm4gYCR7TUFSS0VSX1BBRERJTkdfWX1weGBcbiAgcmV0dXJuIGNvbm5lY3RCZWxvdyA/ICc4cHgnIDogJzAnXG59XG5cbmNvbnN0IHJhaWxCZWZvcmVEaXNwbGF5ID0gKHNob3dDaHJvbWU/OiBib29sZWFuLCByYWlsVGhyb3VnaD86IGJvb2xlYW4sIHJhaWxUb3A/OiBib29sZWFuKTogc3RyaW5nID0+XG4gIHNob3dDaHJvbWUgJiYgKHJhaWxUaHJvdWdoIHx8IHJhaWxUb3ApID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsQWZ0ZXJEaXNwbGF5ID0gKHNob3dDaHJvbWU/OiBib29sZWFuLCByYWlsQm90dG9tPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIHJhaWxCb3R0b20gPyAnYmxvY2snIDogJ25vbmUnXG5cbmNvbnN0IHJhaWxTZWdtZW50U3R5bGUgPSBgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogJHtNQVJLRVJfUkFJTF9MRUZUfXB4O1xuICB3aWR0aDogMXB4O1xuICB6LWluZGV4OiAwO1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICBvcGFjaXR5OiAwLjI1O1xuYFxuXG4vKiogRWwgcGFzbyBhY3Rpdm8gdmEgYSBjb2xvciBwbGVubzsgbG9zIGNlcnJhZG9zIHF1ZWRhbiBhdGVudWFkb3MuICovXG5jb25zdCBtYXJrZXJDb2xvciA9IChzdGF0dXM/OiBzdHJpbmcsIGlzQWN0aXZlPzogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmIChzdGF0dXMgPT09ICdlcnJvcicpIHJldHVybiBjb2xvcnMuZXJyb3IubWFpblxuICBpZiAoaXNBY3RpdmUpIHJldHVybiBjb2xvcnMudGV4dC5wcmltYXJ5XG4gIHJldHVybiBjb2xvcnMudGV4dC5tZWRpdW1HcmF5XG59XG5cbmV4cG9ydCBjb25zdCBTQ1JlYXNvbmluZ0Jsb2NrID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIFNpbiBnYXA6IGVsIGVzcGFjaW8gaGFjaWEgZWwgZGV0YWxsZSB2aXZlIGVuIHN1IHBhZGRpbmctdG9wLCBhc8OtIGNvbGFwc2EganVudG8gY29uIMOpbC4gKi9cbmBcblxuZXhwb3J0IGNvbnN0IFNDTGl2ZVN0ZXAgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogJHtMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFR9cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yMnMgZWFzZS1vdXQ7XG5gXG5cbi8qIFRpbWVsaW5lIGVuIHZpdm86IGxvcyBwYXNvcyBzZSBhcGlsYW4gZW4gdmV6IGRlIHJlZW1wbGF6YXJzZS4gKi9cbmV4cG9ydCBjb25zdCBTQ1JlYXNvbmluZ1RpbWVsaW5lID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gXG5cbmNvbnN0IHN0ZXBSZXBsYWNlQW5pbSA9IGNzc2BcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuYFxuXG5jb25zdCBuYXJyYXRpb25FbnRlckFuaW0gPSBjc3NgXG4gIGFuaW1hdGlvbjogJHtuYXJyYXRpb25FbnRlcn0gJHtOQVJSQVRJT05fRU5URVJfTVN9bXMgJHtOQVJSQVRJT05fRU5URVJfRUFTRX0gYm90aDtcblxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuYFxuXG4vKiBDYWRhIGZpbGEgZW50cmEgc29sYSBjdWFuZG8gbGxlZ2Egc3UgcGFzbzogc2luIGRlbGF5IGVzY2Fsb25hZG8gKG5vIGVzIHVuIGxpc3RhZG8gcXVlIG1vbnRhIGp1bnRvKS4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lUm93ID0gc3R5bGVkLmRpdjx7ICRzZWFtbGVzcz86IGJvb2xlYW47ICRuYXJyYXRpb25FbnRlcj86IGJvb2xlYW4gfT5gXG4gICR7KHsgJHNlYW1sZXNzLCAkbmFycmF0aW9uRW50ZXIgfSkgPT4ge1xuICAgIGlmICgkc2VhbWxlc3MpIHJldHVybiBjc3NgYFxuICAgIGlmICgkbmFycmF0aW9uRW50ZXIpIHJldHVybiBuYXJyYXRpb25FbnRlckFuaW1cbiAgICByZXR1cm4gc3RlcFJlcGxhY2VBbmltXG4gIH19XG5gXG5cbi8qIFZhIGRlYmFqbyBkZWwgY3VlcnBvIGRlbCBtZW5zYWplOiBzZXBhcmEgZGVsIHRleHRvIHkgbm8gZGVqYSBhaXJlIHNvYnJhbnRlIGFiYWpvLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGltZWxpbmVJbmRpY2F0b3IgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nLXRvcDogNnB4O1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjRzIGVhc2Utb3V0IGJvdGg7XG5cbiAgPiAqIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuYFxuXG4vKiogUmVzcHVlc3RhIGZpbmFsIGVuIHN0cmVhbTogc2luIGd1dHRlciBkZSBsYSB0cmF6YSwgZGViYWpvIGRlbCByYXpvbmFtaWVudG8uICovXG5leHBvcnQgY29uc3QgU0NGaW5hbEFuc3dlckJvZHkgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbmBcblxuLyogRWwgbWFya2Rvd24gbG8gcmVzdWVsdmUgTWFpYVN0cmVhbWRvd24gKG1pc21vIHZhcmlhbnQgcXVlIGVsIGN1ZXJwbyBkZWwgbWVuc2FqZSkuICovXG5leHBvcnQgY29uc3QgU0NUaGlua2luZ1RleHQgPSBzdHlsZWQuZGl2PHsgJG11dGVkPzogYm9vbGVhbiB9PmBcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIC8qIEVsIHRoaW5raW5nIChyYXpvbmFtaWVudG8gY3J1ZG8pIHZhIGF0ZW51YWRvIHBhcmEgZGlzdGluZ3VpcmxvIGRlIGxhIG5hcnJhY2nDs24uICovXG4gIG9wYWNpdHk6ICR7KHsgJG11dGVkIH0pID0+ICgkbXV0ZWQgPyAwLjYgOiAxKX07XG4gIGZvbnQtc3R5bGU6ICR7KHsgJG11dGVkIH0pID0+ICgkbXV0ZWQgPyAnaXRhbGljJyA6ICdub3JtYWwnKX07XG5gXG5cbi8qKlxuICogRmlsYSBkZSBsYSB0cmF6YS4gU29sbyBsb3MgcGFzb3MgZGUgYWNjacOzbiAodG9vbC9oYW5kb2ZmKSBsbGV2YW4gY8OtcmN1bG87IGxhc1xuICogbmFycmFjaW9uZXMgKHRhbWJpw6luIGxhIGluaWNpYWwpIGNvbXBhcnRlbiBlbCBndXR0ZXIgcGFyYSBxdWUgbGEgbMOtbmVhIGxhc1xuICogYXRyYXZpZXNlIHNpbiBwdW50by4gRWwgcmFpbCBkZWphIDRweCBkZSBzZXBhcmFjacOzbiBhbnRlcyBkZSBjYWRhIGPDrXJjdWxvLlxuICovXG5leHBvcnQgY29uc3QgU0NTdGVwUm93ID0gc3R5bGVkLmRpdjx7XG4gICRzdGF0dXM/OiBzdHJpbmdcbiAgJGhhc01hcmtlcj86IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgJGlzQWN0aXZlPzogYm9vbGVhblxuICAkc2hvd0Nocm9tZT86IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoPzogYm9vbGVhblxuICAkcmFpbFRvcD86IGJvb2xlYW5cbiAgJHJhaWxCb3R0b20/OiBib29sZWFuXG59PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gYCR7R1VUVEVSX1dJRFRIfXB4YCA6ICcwJyl9O1xuICBwYWRkaW5nLXRvcDogJHsoeyAkaGFzTWFya2VyIH0pID0+ICgkaGFzTWFya2VyID8gYCR7TUFSS0VSX1BBRERJTkdfWX1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyB9KSA9PiBzdGVwUm93UGFkZGluZ0JvdHRvbSgkaGFzTWFya2VyLCAkY29ubmVjdEJlbG93KX07XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wIH0pID0+IHJhaWxCZWZvcmVEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gICAgJHtyYWlsU2VnbWVudFN0eWxlfVxuICAgIHRvcDogMDtcbiAgICBib3R0b206ICR7KHsgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlQm90dG9tKCRyYWlsVGhyb3VnaCwgJHJhaWxUb3ApfTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSB9KSA9PiByYWlsQWZ0ZXJEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6ICR7TUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUfXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1tYXJrZXIge1xuICAgIGRpc3BsYXk6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJHtNQVJLRVJfVE9QfXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6ICR7TUFSS0VSX1NJWkV9cHg7XG4gICAgaGVpZ2h0OiAke01BUktFUl9TSVpFfXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7ICRzdGF0dXMsICRpc0FjdGl2ZSB9KSA9PiBtYXJrZXJDb2xvcigkc3RhdHVzLCAkaXNBY3RpdmUpfTtcbiAgICBvcGFjaXR5OiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gMSA6IDAuNDUpfTtcbiAgICBhbmltYXRpb246ICR7KHsgJGlzQWN0aXZlIH0pID0+ICgkaXNBY3RpdmUgPyBtYXJrZXJQdWxzZSA6ICdub25lJyl9IDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sU3RlcCA9IHN0eWxlZC5kaXY8eyAkc3RhdHVzPzogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzIwMjAyMDtcblxuICAuUmVhc29uaW5nQmxvY2stdG9vbExhYmVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAkeyh7ICRzdGF0dXMgfSkgPT4gKCRzdGF0dXMgPT09ICdlcnJvcicgPyBjb2xvcnMuZXJyb3IubWFpbiA6IGNvbG9ycy50ZXh0LnByaW1hcnkpfTtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay10b29sUHJldmlldyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb3VudCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsRGV0YWlsID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzgwODA4MDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1bW1hcnlUb2dnbGUgPSBzdHlsZWQuYnV0dG9uYFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzgwODA4MDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC4yNHMgZWFzZS1vdXQ7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgJjpkaXNhYmxlZCAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7Y29sb3JzLnByaW1hcnkubWFpbn07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1jaGV2cm9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHtSRUFTT05JTkdfQ09MTEFQU0VfTVN9bXMgJHtSRUFTT05JTkdfQ09MTEFQU0VfRUFTRX07XG4gIH1cblxuICAvKiBDb2xhcHNhZG8gYXB1bnRhIGEgbGEgZGVyZWNoYSAob3JpZW50YWNpw7NuIG5hdGl2YSBkZWwgaWNvbm8pOyBleHBhbmRpZG8sIGFycmliYS4gKi9cbiAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cblxuICAvKiBFbCBndWlvbiBlcyBwYXJ0ZSBkZWwgdGV4dG8gZW4gZWwgbWFxdWV0YWRvLCBubyB1biBzZXBhcmFkb3IgYXRlbnVhZG8uICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RyYWNlQ29sbGFwc2UgPSBzdHlsZWQuZGl2PHsgJGhlaWdodDogbnVtYmVyIHwgJ2F1dG8nIH0+YFxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6ICR7KHsgJGhlaWdodCB9KSA9PiAoJGhlaWdodCA9PT0gJ2F1dG8nID8gJ2F1dG8nIDogYCR7JGhlaWdodH1weGApfTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0ICR7UkVBU09OSU5HX0NPTExBUFNFX01TfW1zICR7UkVBU09OSU5HX0NPTExBUFNFX0VBU0V9O1xuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFeHBhbmRlZFRyYWNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xuICBvcGFjaXR5OiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAxIDogMCl9O1xuICAvKiBFbCBmYWRlIHZhIGFsIGZpbmFsOiBzaSBzZSBhcGFnYSBhbnRlcywgbm8gc2UgdmUgZWwgY2llcnJlIGRlIGxhIGFsdHVyYS4gKi9cbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMjgwbXMnIDogYDI4MG1zICR7UkVBU09OSU5HX0NPTExBUFNFX01TIC0gMjgwfW1zYCl9XG4gICAgJHtSRUFTT05JTkdfQ09MTEFQU0VfRUFTRX07XG5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RyYWNlTm90ZSA9IHN0eWxlZC5wYFxuICBtYXJnaW46IDhweCAwIDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC43NTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTG9hZGluZ0xpbmUgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA2MCU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDgpIDUwJSwgcmdiYSgwLCAwLCAwLCAwLjA0KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogJHtzaGltbWVyfSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NFcnJvclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuXG4gIGJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsdUJBQXVCLEVBQUVDLHFCQUFxQixRQUFRLHdCQUF3QjtBQUV2RixPQUFPLElBQU1DLHdCQUF3QixHQUFHLEVBQUU7QUFFMUMsSUFBTUMsT0FBTyxHQUFHTCxTQUFTLHVFQUd4QjtBQUVELElBQU1NLE1BQU0sR0FBR04sU0FBUyw4RUFHdkI7QUFFRCxJQUFNTyxXQUFXLEdBQUdQLFNBQVMsNkVBRzVCOztBQUVEO0FBQ0EsSUFBTVEsY0FBYyxHQUFHUixTQUFTLCtFQUcvQjtBQUVELE9BQU8sSUFBTVMsa0JBQWtCLEdBQUcsR0FBRztBQUNyQyxPQUFPLElBQU1DLG9CQUFvQixHQUFHLGdDQUFnQzs7QUFFcEU7QUFDQSxJQUFNQyxXQUFXLEdBQUdYLFNBQVMsc0lBSTVCOztBQUVEO0FBQ0EsSUFBTVksV0FBVyxHQUFHLENBQUM7QUFDckIsSUFBTUMsWUFBWSxHQUFHLEVBQUU7QUFDdkIsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQztBQUMxQjtBQUNBLElBQU1D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LE1BQU0sRUFHUkwsTUFBTSxDQUFDK0IsSUFBSSxDQUFDTyxPQUFPLEVBYVB0QyxNQUFNLENBQUNzQyxPQUFPLENBQUNELElBQUksRUFPaEJuQyxxQkFBcUIsRUFBTUQsdUJBQXVCLENBUzdFO0FBRUQsT0FBTyxJQUFNb0YsZUFBZSxHQUFHeEYsTUFBTSxDQUFDMkMsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDJIQUU3QixVQUFBMkMsTUFBQTtFQUFBLElBQUdDLE9BQU8sR0FBQUQsTUFBQSxDQUFQQyxPQUFPO0VBQUEsT0FBUUEsT0FBTyxLQUFLLE1BQU0sR0FBRyxNQUFNLE1BQUFqRSxNQUFBLENBQU1pRSxPQUFPLE9BQUk7QUFBQSxDQUFDLEVBQ3BEckYscUJBQXFCLEVBQU1ELHVCQUF1QixDQUt4RTtBQUVELE9BQU8sSUFBTXVGLGVBQWUsR0FBRzNGLE1BQU0sQ0FBQzJDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxrS0FJNUIsVUFBQThDLE1BQUE7RUFBQSxJQUFHQyxPQUFPLEdBQUFELE1BQUEsQ0FBUEMsT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztBQUFBLENBQUMsRUFFdkIsVUFBQUMsTUFBQTtFQUFBLElBQUdELE9BQU8sR0FBQUMsTUFBQSxDQUFQRCxPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLE9BQU8sWUFBQXBFLE1BQUEsQ0FBWXBCLHFCQUFxQixHQUFHLEdBQUcsT0FBSTtBQUFBLENBQUMsRUFDakdELHVCQUF1QixDQUs1QjtBQUVELE9BQU8sSUFBTTJGLFdBQVcsR0FBRy9GLE1BQU0sQ0FBQ2dHLENBQUMsQ0FBQXBELFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUZBSXhCM0MsTUFBTSxDQUFDK0IsSUFBSSxDQUFDQyxVQUFVLENBRWhDO0FBRUQsT0FBTyxJQUFNOEQsYUFBYSxHQUFHakcsTUFBTSxDQUFDMkMsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFOQU14QnZDLE9BQU8sQ0FDckI7QUFFRCxPQUFPLElBQU0yRixVQUFVLEdBQUdsRyxNQUFNLENBQUMyQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNExBS3pCM0MsTUFBTSxDQUFDK0IsSUFBSSxDQUFDQyxVQUFVLEVBU3BCaEMsTUFBTSxDQUFDK0IsSUFBSSxDQUFDTyxPQUFPLENBRS9CIiwiaWdub3JlTGlzdCI6W119
@@ -5,6 +5,7 @@ import React from 'react';
5
5
  import { resolveToolStepPastLabel } from '../../../utils/streamActivityMessages';
6
6
  import { MaiaStreamdown } from '../MaiaStreamdown/MaiaStreamdown';
7
7
  import { displayRowKey, groupParallelSteps, parallelStepDetail } from './groupParallelSteps';
8
+ import { isVisibleStep as isVisibleReasoningStep } from './reasoningLeading';
8
9
  import { SCParallelContent, SCParallelCount, SCParallelDetail, SCStepRow, SCThinkingText, SCToolStep } from './ReasoningBlock.styles';
9
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
11
  export var stepLabel = function stepLabel(step, t) {
@@ -18,9 +19,7 @@ export var stepLabel = function stepLabel(step, t) {
18
19
  };
19
20
 
20
21
  /** Los `thinking` son el razonamiento crudo del modelo: fuera de la vista por defecto. */
21
- export var isVisibleStep = function isVisibleStep(step) {
22
- return step.type !== 'thinking';
23
- };
22
+ export var isVisibleStep = isVisibleReasoningStep;
24
23
 
25
24
  /** Solo tool/handoff llevan círculo en la traza; narraciones y thinking no. */
26
25
  export var isActionStep = function isActionStep(step) {
@@ -69,7 +68,9 @@ export var ReasoningStepRow = function ReasoningStepRow(_ref) {
69
68
  connectBelow = _ref.connectBelow,
70
69
  isActive = _ref.isActive,
71
70
  _ref$showChrome = _ref.showChrome,
72
- showChrome = _ref$showChrome === void 0 ? true : _ref$showChrome;
71
+ showChrome = _ref$showChrome === void 0 ? true : _ref$showChrome,
72
+ _ref$streamAnimating = _ref.streamAnimating,
73
+ streamAnimating = _ref$streamAnimating === void 0 ? false : _ref$streamAnimating;
73
74
  var isText = step.type === 'narration' || step.type === 'thinking';
74
75
  var hasMarker = isActionStep(step);
75
76
  if (isText && !step.text) return null;
@@ -83,6 +84,7 @@ export var ReasoningStepRow = function ReasoningStepRow(_ref) {
83
84
  $muted: step.type === 'thinking',
84
85
  children: /*#__PURE__*/_jsx(MaiaStreamdown, {
85
86
  variant: "chat",
87
+ isAnimating: streamAnimating,
86
88
  children: step.text
87
89
  })
88
90
  }) : /*#__PURE__*/_jsx(SCToolStep, {
@@ -181,4 +183,4 @@ export var StepList = function StepList(_ref4) {
181
183
  })
182
184
  });
183
185
  };
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsIlNDUGFyYWxsZWxDb250ZW50IiwiU0NQYXJhbGxlbENvdW50IiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3RlcFJvdyIsIlNDVGhpbmtpbmdUZXh0IiwiU0NUb29sU3RlcCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsInN0ZXBMYWJlbCIsInN0ZXAiLCJ0IiwidHlwZSIsInRvIiwiYWdlbnQiLCJ0b29sIiwiaXNWaXNpYmxlU3RlcCIsImlzQWN0aW9uU3RlcCIsImlzVGV4dFN0ZXBSb3ciLCJyb3ciLCJraW5kIiwicmVzb2x2ZVJvd0Nvbm5lY3Rpb25zIiwicm93cyIsImluZGV4IiwiY29ubmVjdEFib3ZlIiwibGVuZ3RoIiwiY29ubmVjdEJlbG93IiwiaXNMYXN0UGFpciIsIm5leHRJc1Rlcm1pbmFsVGV4dCIsInN0ZXBSb3dSYWlsUHJvcHMiLCJoYXNNYXJrZXIiLCJzaG93Q2hyb21lIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiJHNob3dDaHJvbWUiLCIkaGFzTWFya2VyIiwiJGNvbm5lY3RBYm92ZSIsIiRjb25uZWN0QmVsb3ciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIiRyYWlsQm90dG9tIiwiUmVhc29uaW5nU3RlcFJvdyIsIl9yZWYiLCJpc0FjdGl2ZSIsIl9yZWYkc2hvd0Nocm9tZSIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsIlBhcmFsbGVsU3RlcFJvdyIsIl9yZWYyIiwic2hvd0RldGFpbCIsIl9yZWYyJHNob3dDaHJvbWUiLCJkZXRhaWwiLCJzdGVwcyIsImNvdW50TGFiZWwiLCJjb3VudCIsImxhYmVsIiwiRGlzcGxheVN0ZXBSb3ciLCJfcmVmMyIsIl9yZWYzJHNob3dDaHJvbWUiLCJTdGVwTGlzdCIsIl9yZWY0IiwiX3JlZjQkc2hvd0RldGFpbCIsIm1hcCIsIl9yZXNvbHZlUm93Q29ubmVjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ1N0ZXBzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3RyZWFtQWN0aXZpdHlNZXNzYWdlcydcbmltcG9ydCB7IE1haWFTdHJlYW1kb3duIH0gZnJvbSAnLi4vTWFpYVN0cmVhbWRvd24vTWFpYVN0cmVhbWRvd24nXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ1N0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgdHlwZSB7IFJlYXNvbmluZ0Rpc3BsYXlSb3cgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGRpc3BsYXlSb3dLZXksIGdyb3VwUGFyYWxsZWxTdGVwcywgcGFyYWxsZWxTdGVwRGV0YWlsIH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQge1xuICBTQ1BhcmFsbGVsQ29udGVudCxcbiAgU0NQYXJhbGxlbENvdW50LFxuICBTQ1BhcmFsbGVsRGV0YWlsLFxuICBTQ1N0ZXBSb3csXG4gIFNDVGhpbmtpbmdUZXh0LFxuICBTQ1Rvb2xTdGVwLFxufSBmcm9tICcuL1JlYXNvbmluZ0Jsb2NrLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgVHJhbnNsYXRlRm4gPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VUPlsndCddXG5cbmV4cG9ydCBjb25zdCBzdGVwTGFiZWwgPSAoc3RlcDogUmVhc29uaW5nU3RlcCwgdDogVHJhbnNsYXRlRm4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RlcC50eXBlID09PSAnaGFuZG9mZicpIHtcbiAgICByZXR1cm4gc3RlcC50byA/IHQoJ2NoYXQucmVhc29uaW5nLmNhbGxlZEFnZW50JywgeyBhZ2VudDogc3RlcC50byB9KSA6IHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICB9XG4gIGlmICghc3RlcC50b29sKSByZXR1cm4gdCgnY2hhdC5hY3Rpdml0eS5leGVjdXRlZEFjdGlvbicpXG4gIHJldHVybiByZXNvbHZlVG9vbFN0ZXBQYXN0TGFiZWwoc3RlcC50b29sLCB0KVxufVxuXG4vKiogTG9zIGB0aGlua2luZ2Agc29uIGVsIHJhem9uYW1pZW50byBjcnVkbyBkZWwgbW9kZWxvOiBmdWVyYSBkZSBsYSB2aXN0YSBwb3IgZGVmZWN0by4gKi9cbmV4cG9ydCBjb25zdCBpc1Zpc2libGVTdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSAhPT0gJ3RoaW5raW5nJ1xuXG4vKiogU29sbyB0b29sL2hhbmRvZmYgbGxldmFuIGPDrXJjdWxvIGVuIGxhIHRyYXphOyBuYXJyYWNpb25lcyB5IHRoaW5raW5nIG5vLiAqL1xuZXhwb3J0IGNvbnN0IGlzQWN0aW9uU3RlcCA9IChzdGVwOiBSZWFzb25pbmdTdGVwKTogYm9vbGVhbiA9PiBzdGVwLnR5cGUgPT09ICd0b29sJyB8fCBzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJ1xuXG4vKiogTmFycmFjacOzbi90aGlua2luZyBhbCBjaWVycmUgZGUgbGEgdHJhemE6IG5vIGxsZXZhbiByYWlsIGNvbGdhbnRlLiAqL1xuZXhwb3J0IGNvbnN0IGlzVGV4dFN0ZXBSb3cgPSAocm93OiBSZWFzb25pbmdEaXNwbGF5Um93KTogYm9vbGVhbiA9PlxuICByb3cua2luZCA9PT0gJ3NpbmdsZScgJiYgKHJvdy5zdGVwLnR5cGUgPT09ICduYXJyYXRpb24nIHx8IHJvdy5zdGVwLnR5cGUgPT09ICd0aGlua2luZycpXG5cbi8qKiBDb25lY3RvcmVzIGRlIHJhaWw6IHNpbiBsw61uZWEgaGFjaWEgYWJham8gc2kgbG8gc2lndWllbnRlIGVzIG5hcnJhY2nDs24gZmluYWwuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zID0gKFxuICByb3dzOiBSZWFzb25pbmdEaXNwbGF5Um93W10sXG4gIGluZGV4OiBudW1iZXJcbik6IHsgY29ubmVjdEFib3ZlOiBib29sZWFuOyBjb25uZWN0QmVsb3c6IGJvb2xlYW4gfSA9PiB7XG4gIGNvbnN0IGNvbm5lY3RBYm92ZSA9IGluZGV4ID4gMFxuICBpZiAoaW5kZXggPj0gcm93cy5sZW5ndGggLSAxKSB7XG4gICAgcmV0dXJuIHsgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3c6IGZhbHNlIH1cbiAgfVxuXG4gIGNvbnN0IGlzTGFzdFBhaXIgPSBpbmRleCA9PT0gcm93cy5sZW5ndGggLSAyXG4gIGNvbnN0IG5leHRJc1Rlcm1pbmFsVGV4dCA9IGlzTGFzdFBhaXIgJiYgaXNUZXh0U3RlcFJvdyhyb3dzW2luZGV4ICsgMV0pXG5cbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0QWJvdmUsXG4gICAgY29ubmVjdEJlbG93OiAhbmV4dElzVGVybWluYWxUZXh0LFxuICB9XG59XG5cbmNvbnN0IHN0ZXBSb3dSYWlsUHJvcHMgPSAoXG4gIGhhc01hcmtlcjogYm9vbGVhbixcbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhbixcbiAgY29ubmVjdEJlbG93PzogYm9vbGVhbixcbiAgc2hvd0Nocm9tZSA9IHRydWVcbik6IHtcbiAgJHNob3dDaHJvbWU6IGJvb2xlYW5cbiAgJGhhc01hcmtlcjogYm9vbGVhblxuICAkY29ubmVjdEFib3ZlOiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c6IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoOiBib29sZWFuXG4gICRyYWlsVG9wOiBib29sZWFuXG4gICRyYWlsQm90dG9tOiBib29sZWFuXG59ID0+ICh7XG4gICRzaG93Q2hyb21lOiBzaG93Q2hyb21lLFxuICAkaGFzTWFya2VyOiBoYXNNYXJrZXIsXG4gICRjb25uZWN0QWJvdmU6ICEhY29ubmVjdEFib3ZlLFxuICAkY29ubmVjdEJlbG93OiAhIWNvbm5lY3RCZWxvdyxcbiAgLy8gTmFycmFjacOzbiBpbmljaWFsIChzaW4gY8OtcmN1bG8pOiBsYSBsw61uZWEgYmFqYSBoYWNpYSBlbCBwcmltZXIgc3RlcC5cbiAgLy8gTmFycmFjacOzbiBmaW5hbDogY29ubmVjdEJlbG93IGVzIGZhbHNlIOKGkiBzaW4gbMOtbmVhIGNvbGdhbnRlLlxuICAkcmFpbFRocm91Z2g6IHNob3dDaHJvbWUgJiYgIWhhc01hcmtlciAmJiAhIWNvbm5lY3RCZWxvdyxcbiAgJHJhaWxUb3A6IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEFib3ZlLFxuICAkcmFpbEJvdHRvbTogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG59KVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICAvKiogQ8OtcmN1bG9zIHkgcmFpbDogc29sbyBlbiBlbCBibG9xdWUgZXhwYW5kaWRvLCBubyBlbiB0aW1lbGluZSBlbiB2aXZvLiAqL1xuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJcIiBhcmlhLWhpZGRlbiAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCI+e3N0ZXAudGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93IH0gPSByZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgaW5kZXgpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgICAgICBzaG93RGV0YWlsPXtzaG93RGV0YWlsfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsVUFBVSxRQUNMLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSWhDLE9BQU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLElBQW1CLEVBQUVDLENBQWMsRUFBYTtFQUN4RSxJQUFJRCxJQUFJLENBQUNFLElBQUksS0FBSyxTQUFTLEVBQUU7SUFDM0IsT0FBT0YsSUFBSSxDQUFDRyxFQUFFLEdBQUdGLENBQUMsQ0FBQyw0QkFBNEIsRUFBRTtNQUFFRyxLQUFLLEVBQUVKLElBQUksQ0FBQ0c7SUFBRyxDQUFDLENBQUMsR0FBR0YsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQzFHO0VBQ0EsSUFBSSxDQUFDRCxJQUFJLENBQUNLLElBQUksRUFBRSxPQUFPSixDQUFDLENBQUMsOEJBQThCLENBQUM7RUFDeEQsT0FBT25CLHdCQUF3QixDQUFDa0IsSUFBSSxDQUFDSyxJQUFJLEVBQUVKLENBQUMsQ0FBQztBQUMvQyxDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlOLElBQW1CO0VBQUEsT0FBY0EsSUFBSSxDQUFDRSxJQUFJLEtBQUssVUFBVTtBQUFBOztBQUV2RjtBQUNBLE9BQU8sSUFB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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsImlzVmlzaWJsZVN0ZXAiLCJpc1Zpc2libGVSZWFzb25pbmdTdGVwIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1BhcmFsbGVsQ291bnQiLCJTQ1BhcmFsbGVsRGV0YWlsIiwiU0NTdGVwUm93IiwiU0NUaGlua2luZ1RleHQiLCJTQ1Rvb2xTdGVwIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50Iiwic3RlcExhYmVsIiwic3RlcCIsInQiLCJ0eXBlIiwidG8iLCJhZ2VudCIsInRvb2wiLCJpc0FjdGlvblN0ZXAiLCJpc1RleHRTdGVwUm93Iiwicm93Iiwia2luZCIsInJlc29sdmVSb3dDb25uZWN0aW9ucyIsInJvd3MiLCJpbmRleCIsImNvbm5lY3RBYm92ZSIsImxlbmd0aCIsImNvbm5lY3RCZWxvdyIsImlzTGFzdFBhaXIiLCJuZXh0SXNUZXJtaW5hbFRleHQiLCJzdGVwUm93UmFpbFByb3BzIiwiaGFzTWFya2VyIiwic2hvd0Nocm9tZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIiRzaG93Q2hyb21lIiwiJGhhc01hcmtlciIsIiRjb25uZWN0QWJvdmUiLCIkY29ubmVjdEJlbG93IiwiJHJhaWxUaHJvdWdoIiwiJHJhaWxUb3AiLCIkcmFpbEJvdHRvbSIsIlJlYXNvbmluZ1N0ZXBSb3ciLCJfcmVmIiwiaXNBY3RpdmUiLCJfcmVmJHNob3dDaHJvbWUiLCJfcmVmJHN0cmVhbUFuaW1hdGluZyIsInN0cmVhbUFuaW1hdGluZyIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsImlzQW5pbWF0aW5nIiwiUGFyYWxsZWxTdGVwUm93IiwiX3JlZjIiLCJzaG93RGV0YWlsIiwiX3JlZjIkc2hvd0Nocm9tZSIsImRldGFpbCIsInN0ZXBzIiwiY291bnRMYWJlbCIsImNvdW50IiwibGFiZWwiLCJEaXNwbGF5U3RlcFJvdyIsIl9yZWYzIiwiX3JlZjMkc2hvd0Nocm9tZSIsIlN0ZXBMaXN0IiwiX3JlZjQiLCJfcmVmNCRzaG93RGV0YWlsIiwibWFwIiwiX3Jlc29sdmVSb3dDb25uZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nU3RlcHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyByZXNvbHZlVG9vbFN0ZXBQYXN0TGFiZWwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuaW1wb3J0IHsgTWFpYVN0cmVhbWRvd24gfSBmcm9tICcuLi9NYWlhU3RyZWFtZG93bi9NYWlhU3RyZWFtZG93bidcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3JlYXNvbmluZydcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nRGlzcGxheVJvdyB9IGZyb20gJy4vZ3JvdXBQYXJhbGxlbFN0ZXBzJ1xuaW1wb3J0IHsgZGlzcGxheVJvd0tleSwgZ3JvdXBQYXJhbGxlbFN0ZXBzLCBwYXJhbGxlbFN0ZXBEZXRhaWwgfSBmcm9tICcuL2dyb3VwUGFyYWxsZWxTdGVwcydcbmltcG9ydCB7IGlzVmlzaWJsZVN0ZXAgYXMgaXNWaXNpYmxlUmVhc29uaW5nU3RlcCB9IGZyb20gJy4vcmVhc29uaW5nTGVhZGluZydcbmltcG9ydCB7XG4gIFNDUGFyYWxsZWxDb250ZW50LFxuICBTQ1BhcmFsbGVsQ291bnQsXG4gIFNDUGFyYWxsZWxEZXRhaWwsXG4gIFNDU3RlcFJvdyxcbiAgU0NUaGlua2luZ1RleHQsXG4gIFNDVG9vbFN0ZXAsXG59IGZyb20gJy4vUmVhc29uaW5nQmxvY2suc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBUcmFuc2xhdGVGbiA9IFJldHVyblR5cGU8dHlwZW9mIHVzZVQ+Wyd0J11cblxuZXhwb3J0IGNvbnN0IHN0ZXBMYWJlbCA9IChzdGVwOiBSZWFzb25pbmdTdGVwLCB0OiBUcmFuc2xhdGVGbik6IHN0cmluZyA9PiB7XG4gIGlmIChzdGVwLnR5cGUgPT09ICdoYW5kb2ZmJykge1xuICAgIHJldHVybiBzdGVwLnRvID8gdCgnY2hhdC5yZWFzb25pbmcuY2FsbGVkQWdlbnQnLCB7IGFnZW50OiBzdGVwLnRvIH0pIDogdCgnY2hhdC5hY3Rpdml0eS5leGVjdXRlZEFjdGlvbicpXG4gIH1cbiAgaWYgKCFzdGVwLnRvb2wpIHJldHVybiB0KCdjaGF0LmFjdGl2aXR5LmV4ZWN1dGVkQWN0aW9uJylcbiAgcmV0dXJuIHJlc29sdmVUb29sU3RlcFBhc3RMYWJlbChzdGVwLnRvb2wsIHQpXG59XG5cbi8qKiBMb3MgYHRoaW5raW5nYCBzb24gZWwgcmF6b25hbWllbnRvIGNydWRvIGRlbCBtb2RlbG86IGZ1ZXJhIGRlIGxhIHZpc3RhIHBvciBkZWZlY3RvLiAqL1xuZXhwb3J0IGNvbnN0IGlzVmlzaWJsZVN0ZXAgPSBpc1Zpc2libGVSZWFzb25pbmdTdGVwXG5cbi8qKiBTb2xvIHRvb2wvaGFuZG9mZiBsbGV2YW4gY8OtcmN1bG8gZW4gbGEgdHJhemE7IG5hcnJhY2lvbmVzIHkgdGhpbmtpbmcgbm8uICovXG5leHBvcnQgY29uc3QgaXNBY3Rpb25TdGVwID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXApOiBib29sZWFuID0+IHN0ZXAudHlwZSA9PT0gJ3Rvb2wnIHx8IHN0ZXAudHlwZSA9PT0gJ2hhbmRvZmYnXG5cbi8qKiBOYXJyYWNpw7NuL3RoaW5raW5nIGFsIGNpZXJyZSBkZSBsYSB0cmF6YTogbm8gbGxldmFuIHJhaWwgY29sZ2FudGUuICovXG5leHBvcnQgY29uc3QgaXNUZXh0U3RlcFJvdyA9IChyb3c6IFJlYXNvbmluZ0Rpc3BsYXlSb3cpOiBib29sZWFuID0+XG4gIHJvdy5raW5kID09PSAnc2luZ2xlJyAmJiAocm93LnN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgfHwgcm93LnN0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJylcblxuLyoqIENvbmVjdG9yZXMgZGUgcmFpbDogc2luIGzDrW5lYSBoYWNpYSBhYmFqbyBzaSBsbyBzaWd1aWVudGUgZXMgbmFycmFjacOzbiBmaW5hbC4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlUm93Q29ubmVjdGlvbnMgPSAoXG4gIHJvd3M6IFJlYXNvbmluZ0Rpc3BsYXlSb3dbXSxcbiAgaW5kZXg6IG51bWJlclxuKTogeyBjb25uZWN0QWJvdmU6IGJvb2xlYW47IGNvbm5lY3RCZWxvdzogYm9vbGVhbiB9ID0+IHtcbiAgY29uc3QgY29ubmVjdEFib3ZlID0gaW5kZXggPiAwXG4gIGlmIChpbmRleCA+PSByb3dzLmxlbmd0aCAtIDEpIHtcbiAgICByZXR1cm4geyBjb25uZWN0QWJvdmUsIGNvbm5lY3RCZWxvdzogZmFsc2UgfVxuICB9XG5cbiAgY29uc3QgaXNMYXN0UGFpciA9IGluZGV4ID09PSByb3dzLmxlbmd0aCAtIDJcbiAgY29uc3QgbmV4dElzVGVybWluYWxUZXh0ID0gaXNMYXN0UGFpciAmJiBpc1RleHRTdGVwUm93KHJvd3NbaW5kZXggKyAxXSlcblxuICByZXR1cm4ge1xuICAgIGNvbm5lY3RBYm92ZSxcbiAgICBjb25uZWN0QmVsb3c6ICFuZXh0SXNUZXJtaW5hbFRleHQsXG4gIH1cbn1cblxuY29uc3Qgc3RlcFJvd1JhaWxQcm9wcyA9IChcbiAgaGFzTWFya2VyOiBib29sZWFuLFxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuLFxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuLFxuICBzaG93Q2hyb21lID0gdHJ1ZVxuKToge1xuICAkc2hvd0Nocm9tZTogYm9vbGVhblxuICAkaGFzTWFya2VyOiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU6IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdzogYm9vbGVhblxuICAkcmFpbFRocm91Z2g6IGJvb2xlYW5cbiAgJHJhaWxUb3A6IGJvb2xlYW5cbiAgJHJhaWxCb3R0b206IGJvb2xlYW5cbn0gPT4gKHtcbiAgJHNob3dDaHJvbWU6IHNob3dDaHJvbWUsXG4gICRoYXNNYXJrZXI6IGhhc01hcmtlcixcbiAgJGNvbm5lY3RBYm92ZTogISFjb25uZWN0QWJvdmUsXG4gICRjb25uZWN0QmVsb3c6ICEhY29ubmVjdEJlbG93LFxuICAvLyBOYXJyYWNpw7NuIGluaWNpYWwgKHNpbiBjw61yY3Vsbyk6IGxhIGzDrW5lYSBiYWphIGhhY2lhIGVsIHByaW1lciBzdGVwLlxuICAvLyBOYXJyYWNpw7NuIGZpbmFsOiBjb25uZWN0QmVsb3cgZXMgZmFsc2Ug4oaSIHNpbiBsw61uZWEgY29sZ2FudGUuXG4gICRyYWlsVGhyb3VnaDogc2hvd0Nocm9tZSAmJiAhaGFzTWFya2VyICYmICEhY29ubmVjdEJlbG93LFxuICAkcmFpbFRvcDogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QWJvdmUsXG4gICRyYWlsQm90dG9tOiBzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiAhIWNvbm5lY3RCZWxvdyxcbn0pXG5cbmV4cG9ydCB0eXBlIFJlYXNvbmluZ1N0ZXBSb3dQcm9wcyA9IHtcbiAgc3RlcDogUmVhc29uaW5nU3RlcFxuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIC8qKiBDw61yY3Vsb3MgeSByYWlsIGRlIGxhIHRyYXphLiBEZWZhdWx0IGVuY2VuZGlkbyAoYmxvcXVlIHkgdGltZWxpbmUgZW4gdml2bykuICovXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG4gIC8qKiBTdHJlYW1kb3duIGVuIG1vZG8gYW5pbWFjacOzbiAobmFycmFjacOzbiBsaXZlIGVuIHRpbWVsaW5lKS4gKi9cbiAgc3RyZWFtQW5pbWF0aW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG4gIHN0cmVhbUFuaW1hdGluZyA9IGZhbHNlLFxufTogUmVhc29uaW5nU3RlcFJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzVGV4dCA9IHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgfHwgc3RlcC50eXBlID09PSAndGhpbmtpbmcnXG4gIGNvbnN0IGhhc01hcmtlciA9IGlzQWN0aW9uU3RlcChzdGVwKVxuICBpZiAoaXNUZXh0ICYmICFzdGVwLnRleHQpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93XG4gICAgICB7Li4uc3RlcFJvd1JhaWxQcm9wcyhoYXNNYXJrZXIsIGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93LCBzaG93Q2hyb21lKX1cbiAgICAgICRzdGF0dXM9e3N0ZXAuc3RhdHVzfVxuICAgICAgJGlzQWN0aXZlPXtzaG93Q2hyb21lID8gaXNBY3RpdmUgOiBmYWxzZX1cbiAgICA+XG4gICAgICB7c2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICB7aXNUZXh0ID8gKFxuICAgICAgICA8U0NUaGlua2luZ1RleHQgJG11dGVkPXtzdGVwLnR5cGUgPT09ICd0aGlua2luZyd9PlxuICAgICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiIGlzQW5pbWF0aW5nPXtzdHJlYW1BbmltYXRpbmd9PlxuICAgICAgICAgICAge3N0ZXAudGV4dH1cbiAgICAgICAgICA8L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93IH0gPSByZXNvbHZlUm93Q29ubmVjdGlvbnMocm93cywgaW5kZXgpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERpc3BsYXlTdGVwUm93XG4gICAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgdD17dH1cbiAgICAgICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgICAgICBzaG93RGV0YWlsPXtzaG93RGV0YWlsfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUFTQyxhQUFhLElBQUlDLHNCQUFzQixRQUFRLG9CQUFvQjtBQUM1RSxTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsVUFBVSxRQUNMLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSWhDLE9BQU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLElBQW1CLEVBQUVDLENBQWMsRUFBYTtFQUN4RSxJQUFJRCxJQUFJLENBQUNFLElBQUksS0FBSyxTQUFTLEVBQUU7SUFDM0IsT0FBT0YsSUFBSSxDQUFDRyxFQUFFLEdBQUdG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QUMsRUFBRUEsQ0FBRTtNQUNMWSxZQUFZLEVBQUVBLFlBQWE7TUFDM0JFLFlBQVksRUFBRUEsWUFBYTtNQUMzQmtDLFVBQVUsRUFBRUEsVUFBVztNQUN2QmpCLFFBQVEsRUFBRUEsUUFBUztNQUNuQlosVUFBVSxFQUFFQTtJQUFXLENBQ3hCLENBQUM7RUFFTjtFQUNBLG9CQUNFMUIsSUFBQSxDQUFDb0MsZ0JBQWdCO0lBQ2Y5QixJQUFJLEVBQUVRLEdBQUcsQ0FBQ1IsSUFBSztJQUNmQyxDQUFDLEVBQUVBLENBQUU7SUFDTFksWUFBWSxFQUFFQSxZQUFhO0lBQzNCRSxZQUFZLEVBQUVBLFlBQWE7SUFDM0JpQixRQUFRLEVBQUVBLFFBQVM7SUFDbkJaLFVBQVUsRUFBRUE7RUFBVyxDQUN4QixDQUFDO0FBRU4sQ0FBQztBQVFELE9BQU8sSUFBTXVDLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFBQyxLQUFBLEVBQXVEO0VBQUEsSUFBakRSLEtBQUssR0FBQVEsS0FBQSxDQUFMUixLQUFLO0lBQUVuRCxDQUFDLEdBQUEyRCxLQUFBLENBQUQzRCxDQUFDO0lBQUE0RCxnQkFBQSxHQUFBRCxLQUFBLENBQUVYLFVBQVU7SUFBVkEsVUFBVSxHQUFBWSxnQkFBQSxjQUFHLElBQUksR0FBQUEsZ0JBQUE7RUFDcEQsSUFBTWxELElBQUksR0FBRzVCLGtCQUFrQixDQUFDcUUsS0FBSyxFQUFFLFVBQUFwRCxJQUFJO0lBQUEsT0FBSUQsU0FBUyxDQUFDQyxJQUFJLEVBQUVDLENBQUMsQ0FBQztFQUFBLEVBQUM7RUFFbEUsb0JBQ0VQLElBQUEsQ0FBQUksU0FBQTtJQUFBNEMsUUFBQSxFQUNHL0IsSUFBSSxDQUFDbUQsR0FBRyxDQUFDLFVBQUN0RCxHQUFHLEVBQUVJLEtBQUssRUFBSztNQUN4QixJQUFBbUQscUJBQUEsR0FBdUNyRCxxQkFBcUIsQ0FBQ0MsSUFBSSxFQUFFQyxLQUFLLENBQUM7UUFBakVDLFlBQVksR0FBQWtELHFCQUFBLENBQVpsRCxZQUFZO1FBQUVFLFlBQVksR0FBQWdELHFCQUFBLENBQVpoRCxZQUFZO01BQ2xDLG9CQUNFckIsSUFBQSxDQUFDOEQsY0FBYztRQUViaEQsR0FBRyxFQUFFQSxHQUFJO1FBQ1RQLENBQUMsRUFBRUEsQ0FBRTtRQUNMWSxZQUFZLEVBQUVBLFlBQWE7UUFDM0JFLFlBQVksRUFBRUEsWUFBYTtRQUMzQmtDLFVBQVUsRUFBRUE7TUFBVyxHQUxsQm5FLGFBQWEsQ0FBQzBCLEdBQUcsQ0FNdkIsQ0FBQztJQUVOLENBQUM7RUFBQyxDQUNGLENBQUM7QUFFUCxDQUFDIiwiaWdub3JlTGlzdCI6W119