@projectcor/maia-components 2.28.0 → 2.30.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 (658) hide show
  1. package/lib/App.js +55 -0
  2. package/lib/components/atoms/ActionableButton.js +60 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  6. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  7. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  9. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  16. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  23. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  25. package/lib/components/atoms/Backdrop/index.js +2 -0
  26. package/lib/components/atoms/CardItem.js +7 -0
  27. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  28. package/lib/components/atoms/CardMenu/index.js +2 -0
  29. package/lib/components/atoms/CardMenu/styles.js +21 -0
  30. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  31. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  32. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  35. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  36. package/lib/components/atoms/Checkbox/index.js +2 -0
  37. package/lib/components/atoms/Checkbox/styles.js +39 -0
  38. package/lib/components/atoms/Chip/Chip.js +150 -0
  39. package/lib/components/atoms/Chip/index.js +2 -0
  40. package/lib/components/atoms/Chip/styles.js +43 -0
  41. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  43. package/lib/components/atoms/ChipLlm/index.js +2 -0
  44. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  47. package/lib/components/atoms/ChipStatus/index.js +2 -0
  48. package/lib/components/atoms/ClearButton.js +6 -0
  49. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  51. package/lib/components/atoms/ClientSelector/index.js +2 -0
  52. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  54. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  55. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
  56. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  57. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  59. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  60. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
  62. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  63. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  65. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  66. package/lib/components/atoms/CopyToClipboard.js +70 -0
  67. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  68. package/lib/components/atoms/EditableLabel/index.js +2 -0
  69. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  70. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  72. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  73. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  75. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  76. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  79. package/lib/components/atoms/EntitySelector/index.js +2 -0
  80. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  82. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  85. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  87. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  88. package/lib/components/atoms/Expand/Expand.js +32 -0
  89. package/lib/components/atoms/Expand/index.js +2 -0
  90. package/lib/components/atoms/Fade/Fade.js +56 -0
  91. package/lib/components/atoms/Fade/index.js +2 -0
  92. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  94. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  95. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  99. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  103. package/lib/components/atoms/GoBackButton.js +24 -0
  104. package/lib/components/atoms/HelpButton.js +44 -0
  105. package/lib/components/atoms/IconButton.js +56 -0
  106. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  108. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  109. package/lib/components/atoms/Input/CustomInput.js +91 -0
  110. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  111. package/lib/components/atoms/Input/index.js +2 -0
  112. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  113. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  114. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  115. package/lib/components/atoms/Loader.js +41 -0
  116. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  118. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  119. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  121. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  122. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  124. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  125. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  126. package/lib/components/atoms/LoadingText/index.js +2 -0
  127. package/lib/components/atoms/LoadingText/styles.js +7 -0
  128. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  129. package/lib/components/atoms/MAIAButton/index.js +2 -0
  130. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  131. package/lib/components/atoms/MAIAError/index.js +2 -0
  132. package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  134. package/lib/components/atoms/MAIAInput/index.js +2 -0
  135. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  136. package/lib/components/atoms/MAIAInput/styles.js +182 -0
  137. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  139. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  140. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  141. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  145. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  146. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  148. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  149. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  150. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  151. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  154. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  155. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  157. package/lib/components/atoms/ModalInfo/index.js +3 -0
  158. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  159. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  162. package/lib/components/atoms/ModalProject/index.js +2 -0
  163. package/lib/components/atoms/NextPageLoader.js +33 -0
  164. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  167. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  168. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  170. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  171. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  173. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  174. package/lib/components/atoms/PrimaryButton.js +31 -0
  175. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  177. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  178. package/lib/components/atoms/SecondaryButton.js +20 -0
  179. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  182. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  183. package/lib/components/atoms/Skeleton/index.js +2 -0
  184. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  185. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  186. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  187. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  188. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  189. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  190. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  191. package/lib/components/atoms/Switch/Switch.js +27 -0
  192. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  193. package/lib/components/atoms/Switch/index.js +2 -0
  194. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  195. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  196. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  197. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  198. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  199. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  200. package/lib/components/atoms/TextArea/index.js +2 -0
  201. package/lib/components/atoms/ThirdButton.js +19 -0
  202. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  203. package/lib/components/atoms/VideoModal/index.js +2 -0
  204. package/lib/components/atoms/WithAppCfg.js +26 -0
  205. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  206. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  207. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  208. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  209. package/lib/components/atoms/icons/AIIcon.js +23 -0
  210. package/lib/components/atoms/icons/AacFile.js +39 -0
  211. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  212. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  213. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  214. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  215. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  216. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  217. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  218. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  219. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  220. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  221. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  222. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  223. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  224. package/lib/components/atoms/icons/Brain.js +77 -0
  225. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  226. package/lib/components/atoms/icons/CorLogo.js +76 -0
  227. package/lib/components/atoms/icons/CsvFile.js +41 -0
  228. package/lib/components/atoms/icons/DocFile.js +41 -0
  229. package/lib/components/atoms/icons/DocxFile.js +41 -0
  230. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  231. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  232. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  233. package/lib/components/atoms/icons/EmptyState.js +84 -0
  234. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  235. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  236. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  237. package/lib/components/atoms/icons/ErrorState.js +51 -0
  238. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  239. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  240. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  241. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  242. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  243. package/lib/components/atoms/icons/ImageFile.js +46 -0
  244. package/lib/components/atoms/icons/M4aFile.js +39 -0
  245. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  246. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  247. package/lib/components/atoms/icons/MDFile.js +41 -0
  248. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  249. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  250. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  251. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  252. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  253. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  254. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  256. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  257. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  259. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  260. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  261. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  262. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  263. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  264. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  265. package/lib/components/atoms/icons/Mp3File.js +39 -0
  266. package/lib/components/atoms/icons/Mp4File.js +39 -0
  267. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  268. package/lib/components/atoms/icons/NewChat.js +29 -0
  269. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  270. package/lib/components/atoms/icons/OgaFile.js +39 -0
  271. package/lib/components/atoms/icons/OggFile.js +39 -0
  272. package/lib/components/atoms/icons/PdfFile.js +39 -0
  273. package/lib/components/atoms/icons/PptFile.js +47 -0
  274. package/lib/components/atoms/icons/PptxFile.js +49 -0
  275. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  276. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  277. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  278. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  279. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  280. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  281. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  282. package/lib/components/atoms/icons/TextFile.js +41 -0
  283. package/lib/components/atoms/icons/WavFile.js +39 -0
  284. package/lib/components/atoms/icons/WebmFile.js +50 -0
  285. package/lib/components/atoms/icons/XlsFile.js +42 -0
  286. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  287. package/lib/components/atoms/icons/index.js +50 -0
  288. package/lib/components/atoms/index.js +42 -0
  289. package/lib/components/index.js +11 -0
  290. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  291. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
  292. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  293. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  294. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  295. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  296. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  297. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  298. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  299. package/lib/components/molecules/AbmSection/index.js +4 -0
  300. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  301. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  302. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
  303. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  304. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  305. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  306. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  307. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  308. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  309. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  310. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  311. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  312. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  313. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  314. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  315. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  316. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  317. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  318. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  319. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  320. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  321. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  322. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
  323. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  324. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  325. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  326. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  327. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  328. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  329. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  330. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
  331. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  333. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  334. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  335. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  336. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  337. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  338. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  339. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  340. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  341. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  342. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  343. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  344. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  345. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  346. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  347. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  348. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  349. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  350. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  351. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  352. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  353. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  354. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  355. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  356. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  357. package/lib/components/molecules/ChatFooter/index.js +2 -0
  358. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  359. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
  360. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  361. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  362. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  363. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  364. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  365. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  366. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  367. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  368. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  369. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  370. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  371. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  372. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  373. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  374. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  376. package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
  377. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  378. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  379. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  380. package/lib/components/molecules/Sidebar/index.js +2 -0
  381. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
  382. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  383. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  384. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
  385. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  386. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  387. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
  388. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  389. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  390. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  391. package/lib/components/organisms/ChatAI/index.js +2 -0
  392. package/lib/components/organisms/ChatAI/styles.js +7 -0
  393. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  394. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  395. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  396. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  397. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  398. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  399. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  400. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  401. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  402. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  403. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  404. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  405. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  406. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  407. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  408. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  409. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  410. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  411. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  412. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  413. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  414. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  415. package/lib/components/organisms/SnackBar/index.js +2 -0
  416. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  417. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  418. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  419. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  420. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  421. package/lib/constants/config.js +13 -0
  422. package/lib/constants/formatExtensions.js +55 -0
  423. package/lib/constants/gqlClient.js +4 -0
  424. package/lib/constants/maiaHourAgentAccess.js +15 -0
  425. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  426. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  427. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  428. package/lib/constants/permissions/config.js +72 -0
  429. package/lib/constants/permissions/index.js +3 -0
  430. package/lib/constants/permissions/types.js +2 -0
  431. package/lib/constants/permissions/utils.js +18 -0
  432. package/lib/constants/plannerSyncEvents.js +15 -0
  433. package/lib/constants/taskLinkIcon.js +15 -0
  434. package/lib/constants/taskUrls.js +11 -0
  435. package/lib/context/cor-user.js +31 -0
  436. package/lib/context/global-context.js +39 -0
  437. package/lib/dev/DevChatAI.js +101 -0
  438. package/lib/dev/DevContextMentionInput.js +67 -0
  439. package/lib/dev/ProjectSummary.js +9 -0
  440. package/lib/dev/Providers.js +27 -0
  441. package/lib/exports.js +2 -0
  442. package/lib/hooks/README.md +192 -0
  443. package/lib/hooks/index.js +30 -0
  444. package/lib/hooks/useAccessClient/index.js +2 -0
  445. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  446. package/lib/hooks/useAgentModel/index.js +2 -0
  447. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  448. package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
  449. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  450. package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
  451. package/lib/hooks/useAgentSuggestions.js +60 -0
  452. package/lib/hooks/useCaretPosition.js +65 -0
  453. package/lib/hooks/useChatManager/index.js +2 -0
  454. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  455. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  456. package/lib/hooks/useChatMessages/index.js +2 -0
  457. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  458. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  459. package/lib/hooks/useChats/index.js +2 -0
  460. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  461. package/lib/hooks/useChats/useChats.js +187 -0
  462. package/lib/hooks/useClientSearch.js +163 -0
  463. package/lib/hooks/useContextMentions.js +463 -0
  464. package/lib/hooks/useContextPinPopover.js +228 -0
  465. package/lib/hooks/useDebounce.js +18 -0
  466. package/lib/hooks/useEntitySearch.js +1239 -0
  467. package/lib/hooks/useEvent.js +93 -0
  468. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  469. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  470. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  471. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  472. package/lib/hooks/useKnowledge/index.js +4 -0
  473. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  474. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  475. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  476. package/lib/hooks/useMentionAllowedTypes.js +136 -0
  477. package/lib/hooks/useMentionPopover.js +366 -0
  478. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  479. package/lib/hooks/useModal/index.js +2 -0
  480. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  481. package/lib/hooks/useModal/useModal.js +47 -0
  482. package/lib/hooks/useOnboardingNavigation.js +20 -0
  483. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  484. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  485. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  486. package/lib/hooks/useProjectSearch.js +183 -0
  487. package/lib/hooks/useProjectSummary.js +101 -0
  488. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  489. package/lib/hooks/useProjects.js +46 -0
  490. package/lib/hooks/useRecentClientsSearch.js +150 -0
  491. package/lib/hooks/useRecentContexts.js +86 -0
  492. package/lib/hooks/useResize.js +29 -0
  493. package/lib/hooks/useSlashCommands.js +84 -0
  494. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  495. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  496. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  497. package/lib/hooks/useStreamResponse.js +112 -0
  498. package/lib/hooks/useStreamdownStyles.js +13 -0
  499. package/lib/hooks/useStreamingMessage/index.js +2 -0
  500. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  501. package/lib/hooks/useT.js +17 -0
  502. package/lib/hooks/useTabTaskDefault.js +33 -0
  503. package/lib/hooks/useTaskPanel.js +22 -0
  504. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  505. package/lib/hooks/useToggle.js +19 -0
  506. package/lib/hooks/useToggleFavorite/index.js +2 -0
  507. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  508. package/lib/index.css +76 -0
  509. package/lib/index.js +30 -0
  510. package/lib/lang/br/index.js +761 -0
  511. package/lib/lang/en/index.js +761 -0
  512. package/lib/lang/es/index.js +762 -0
  513. package/lib/lang/fr/index.js +582 -0
  514. package/lib/lang/index.js +24 -0
  515. package/lib/lang/utils.js +33 -0
  516. package/lib/mocks/mockChats.js +395 -0
  517. package/lib/mocks/mockOrchestrator.js +5 -0
  518. package/lib/mocks/mockProject.js +11 -0
  519. package/lib/mocks/mockProjectSummary.js +6 -0
  520. package/lib/mocks/mockedUser.js +169 -0
  521. package/lib/services/apolloClient.js +3 -0
  522. package/lib/services/appcues.js +19 -0
  523. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  524. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  525. package/lib/services/corpilot/client.js +27 -0
  526. package/lib/services/corpilot/index.js +5 -0
  527. package/lib/services/maia/Access/updateAccess.js +59 -0
  528. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  529. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  530. package/lib/services/maia/Actions/index.js +7 -0
  531. package/lib/services/maia/Agents/createAgent.js +39 -0
  532. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  533. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  534. package/lib/services/maia/Agents/getAgentById.js +162 -0
  535. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  536. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  537. package/lib/services/maia/Agents/getAgents.js +718 -0
  538. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  539. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  540. package/lib/services/maia/Agents/updateAgent.js +39 -0
  541. package/lib/services/maia/Chats/deleteChat.js +32 -0
  542. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  543. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  544. package/lib/services/maia/Chats/index.js +15 -0
  545. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  546. package/lib/services/maia/Chats/patchChat.js +43 -0
  547. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  548. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  549. package/lib/services/maia/Faqs/index.js +5 -0
  550. package/lib/services/maia/Knowledge/delete.js +41 -0
  551. package/lib/services/maia/Knowledge/download.js +48 -0
  552. package/lib/services/maia/Knowledge/index.js +3 -0
  553. package/lib/services/maia/Knowledge/save.js +43 -0
  554. package/lib/services/maia/Orchestrator/index.js +7 -0
  555. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  556. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  557. package/lib/services/maia/RecentClients/index.js +6 -0
  558. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  559. package/lib/services/maia/RecentContexts/index.js +6 -0
  560. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  561. package/lib/services/maia/RecentProjects/index.js +6 -0
  562. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  563. package/lib/services/maia/RecentTasks/index.js +6 -0
  564. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  565. package/lib/services/maia/RecentUsers/index.js +6 -0
  566. package/lib/services/maia/Skills/createSkill.js +39 -0
  567. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  568. package/lib/services/maia/Skills/generateSkill.js +41 -0
  569. package/lib/services/maia/Skills/getSkills.js +90 -0
  570. package/lib/services/maia/Skills/updateSkill.js +39 -0
  571. package/lib/services/maia/client.js +27 -0
  572. package/lib/services/maia/index.js +17 -0
  573. package/lib/services/query/ClientSearchQuery.js +5 -0
  574. package/lib/services/query/entitySearchQuery.js +18 -0
  575. package/lib/services/query/index.js +2 -0
  576. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  577. package/lib/services/query/taskUserTabQuery.js +8 -0
  578. package/lib/services/query/usersDirectoryQuery.js +19 -0
  579. package/lib/services/types.js +6 -0
  580. package/lib/services/utils/fetchCOR.js +117 -0
  581. package/lib/services/utils/getCookie.js +10 -0
  582. package/lib/services/utils/index.js +3 -0
  583. package/lib/services/utils/mapChatMessages.js +287 -0
  584. package/lib/services/utils/validateIsMaia.js +4 -0
  585. package/lib/store/chatsSidebarOptimistic.js +92 -0
  586. package/lib/store/chatsStore.types.js +2 -0
  587. package/lib/store/chatsStoreLifecycle.js +8 -0
  588. package/lib/store/faqsStore.types.js +2 -0
  589. package/lib/store/index.js +4 -0
  590. package/lib/store/maiaLastChatPersistence.js +35 -0
  591. package/lib/store/sessions/activeView.js +22 -0
  592. package/lib/store/sessions/index.js +9 -0
  593. package/lib/store/sessions/sessionHitlContext.js +15 -0
  594. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  595. package/lib/store/sessions/sessionNotifications.js +110 -0
  596. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  597. package/lib/store/sessions/sessionStreamManager.js +715 -0
  598. package/lib/store/sessions/sessionStreamingText.js +80 -0
  599. package/lib/store/sessions/sessions.types.js +35 -0
  600. package/lib/store/sessions/useSessionMeta.js +39 -0
  601. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  602. package/lib/store/sessions/useSessionsStore.js +197 -0
  603. package/lib/store/useChatsStore.js +387 -0
  604. package/lib/store/useFaqsStore.js +27 -0
  605. package/lib/streamdownStyles.js +9 -0
  606. package/lib/styles/StyledCleanContainer.js +7 -0
  607. package/lib/styles/cascade.js +14 -0
  608. package/lib/styles/config.js +47 -0
  609. package/lib/styles/shared/scrollable.js +3 -0
  610. package/lib/styles/transitions.js +21 -0
  611. package/lib/types/Action.js +2 -0
  612. package/lib/types/AgentSuggestion.js +2 -0
  613. package/lib/types/Chat.js +10 -0
  614. package/lib/types/Client.js +2 -0
  615. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  616. package/lib/types/Project.js +2 -0
  617. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  618. package/lib/types/Task.js +2 -0
  619. package/lib/types/agent.js +2 -0
  620. package/lib/types/agentModal.js +2 -0
  621. package/lib/types/contextMention.js +37 -0
  622. package/lib/types/global.d.js +2 -0
  623. package/lib/types/skill.js +2 -0
  624. package/lib/types/streamActivity.js +2 -0
  625. package/lib/types/userType.d.js +2 -0
  626. package/lib/utils/actionCategoryMap.js +37 -0
  627. package/lib/utils/actionIconMap.js +61 -0
  628. package/lib/utils/agentDisplayName.js +42 -0
  629. package/lib/utils/chatInputFiles.js +52 -0
  630. package/lib/utils/contextMentionIcons.js +134 -0
  631. package/lib/utils/contextMentionLabel.js +4 -0
  632. package/lib/utils/contextMentionTriggers.js +54 -0
  633. package/lib/utils/contextMentionTypeLabel.js +17 -0
  634. package/lib/utils/corConnectorMentionTypes.js +41 -0
  635. package/lib/utils/ensureStreamdownStyles.js +21 -0
  636. package/lib/utils/entityLinkRender.js +135 -0
  637. package/lib/utils/fileDownloadHelper.js +40 -0
  638. package/lib/utils/formatQuickActionMessage.js +16 -0
  639. package/lib/utils/formatUnreadCount.js +6 -0
  640. package/lib/utils/getUnitFileSize.js +13 -0
  641. package/lib/utils/hitlAnalytics.js +65 -0
  642. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  643. package/lib/utils/imagePreprocessor.js +108 -0
  644. package/lib/utils/index.js +3 -0
  645. package/lib/utils/maiaHostOpen.js +19 -0
  646. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  647. package/lib/utils/mapBackendLang.js +8 -0
  648. package/lib/utils/normalizeAgentConnectors.js +70 -0
  649. package/lib/utils/openTaskInCorPanel.js +22 -0
  650. package/lib/utils/orchestratorSubagents.js +11 -0
  651. package/lib/utils/renderContextMentions.js +399 -0
  652. package/lib/utils/retryCompletion.js +85 -0
  653. package/lib/utils/slashCommandMarker.js +30 -0
  654. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  655. package/lib/utils/sseStreamContent.js +17 -0
  656. package/lib/utils/streamActivityMessages.js +359 -0
  657. package/lib/utils/validateTrimmedFields.js +8 -0
  658. package/package.json +1 -1
@@ -0,0 +1,761 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { SECTIONS } from '../../constants/config';
5
+ import { ProjectSummaryConfigKeys } from '../../types/ProjectSummaryConfigKeys';
6
+ var globals = {
7
+ close: 'Close',
8
+ minimize: 'Minimize',
9
+ howWorks: 'How does it work?',
10
+ brandName: 'MAIA',
11
+ expand: 'Expand',
12
+ collapse: 'Collapse',
13
+ goBack: 'Go back to the start',
14
+ copy: 'Copy',
15
+ copied: 'Copied',
16
+ saved: 'Saved',
17
+ selectProject: 'Select project',
18
+ save: 'Save',
19
+ cancel: 'Cancel'
20
+ };
21
+ var error = {
22
+ title: 'A problem has occurred',
23
+ description: 'We are currently experiencing some issues, please try again in a few minutes.',
24
+ tryAgain: 'Try again'
25
+ };
26
+ var genericSection = {
27
+ error: error,
28
+ globals: globals
29
+ };
30
+ var projectSummarySection = {
31
+ resume: 'Resume',
32
+ hello: 'Hi, {{name}}!',
33
+ welcome: "I'm MAIA, your assistant at COR",
34
+ feedback: {
35
+ thumbsUp: 'It was helpful',
36
+ thumbsDown: "It wasn't helpful",
37
+ sources: 'Sources'
38
+ },
39
+ config: {
40
+ projectSummary: 'Summarize project',
41
+ projectSummaryTitle: 'Project summary',
42
+ goBack: 'Go back',
43
+ selectedProject: 'Selected project',
44
+ selectProject: 'Select project',
45
+ configureResume: 'Advanced settings',
46
+ generatingResume: 'Generating summary',
47
+ generateResume: 'Generate',
48
+ hideConfig: 'Hide settings'
49
+ },
50
+ configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Dates and deadlines'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Profitability'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimated hours and usage'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tasks and progress'), ProjectSummaryConfigKeys.REWORKS, 'Rework')
51
+ };
52
+ var homeMenu = {
53
+ projectSummary: {
54
+ title: 'Project Summary',
55
+ description: 'Generate reports with AI based on your project'
56
+ },
57
+ faq: {
58
+ title: 'Frequently Asked Questions',
59
+ startTitle: 'You can start with...',
60
+ empty: 'No frequently asked questions',
61
+ error: 'Oops! We had a problem loading the frequently asked questions. Please try again in a few minutes.',
62
+ categories: {
63
+ projects: 'Project',
64
+ tasks: 'Tasks',
65
+ hours: 'Hours',
66
+ reworks: 'Rework',
67
+ undefined: 'No category'
68
+ }
69
+ },
70
+ fua: {
71
+ title: 'Frequently used actions',
72
+ newBadge: 'New',
73
+ error: 'Oops! We had a problem loading the frequently used actions. Please try again in a few minutes.'
74
+ },
75
+ recentContexts: {
76
+ title: 'Choose a recent context for a more accurate answer:',
77
+ types: {
78
+ client: 'Client',
79
+ project: 'Project',
80
+ task: 'Task'
81
+ }
82
+ },
83
+ contextHome: {
84
+ greeting: 'Hi, {{name}} 👋',
85
+ subtitle: "I'm MAIA, your assistant for tasks, projects, and clients.\nShall we continue with something recent?",
86
+ subtitleCollaborator: "I'm MAIA, your assistant for tasks. Shall we continue with something recent?",
87
+ subtitleCollaboratorWithHours: 'Log your hours or start a chat about a task.',
88
+ subtitleManagerWithHours: 'Where would you like to start?',
89
+ hoursSection: {
90
+ title: 'Log hours'
91
+ },
92
+ recentTasksSection: {
93
+ title: 'Ask about a task',
94
+ subtitle: 'Pick a recent task to use as context.'
95
+ },
96
+ recentContextsSectionManager: {
97
+ title: 'Or resume something recent',
98
+ subtitle: 'Pick a task, project, or client to use as context'
99
+ },
100
+ contextGreeting: {
101
+ project: 'What do you want us to analyze? Hours, estimates, rework? You choose!',
102
+ task: "I'm here to help you with this task. Use one of the actions to get started.",
103
+ client: 'What do you want us to analyze? Profitability, progress, deadlines? You choose!'
104
+ }
105
+ },
106
+ plannerHome: {
107
+ title: "Let's start tracking your hours",
108
+ subtitle: 'Where should we begin?'
109
+ },
110
+ action: {
111
+ categories: {
112
+ tasks: 'Task actions',
113
+ collaborators: 'Collaborators and assignees',
114
+ labels: 'Labels and types',
115
+ checklists: 'Checklists',
116
+ deliverables: 'Deliverables',
117
+ reworks: 'Reworks',
118
+ hours: 'Time logging'
119
+ }
120
+ },
121
+ createdBy: 'by',
122
+ createdByTooltip: 'Agent creator user',
123
+ createdByTooltipDeleted: 'User deleted. Their name is kept for reference.',
124
+ taskGreeting: "I'm here to help you with this task. Use one of the actions to get started.",
125
+ hello: {
126
+ title: 'Done! I’m now using the project',
127
+ title_1: 'Anticipate deviations. Let’s analyze this project.',
128
+ title_2: 'What do you want us to analyze? Hours, estimates, rework? You choose!',
129
+ title_3: 'Let’s review this project’s progress.',
130
+ subtitle: 'To get started, I can help you with these options. Or feel free to type your question directly!',
131
+ titlePm: 'Hi, {{name}}! I’m {{agent}}, your assistant.',
132
+ subtitlePm: 'To give you accurate answers, I need to know which project we’re talking about. Which one do you choose?'
133
+ },
134
+ maiaker: {
135
+ title: 'Turn repetitive processes into smart agents',
136
+ description: 'Create agents that analyze and generate content tailored to your needs.',
137
+ createManualAgent: 'Create agent manually',
138
+ badgeNew: 'New',
139
+ briefCard: {
140
+ title: 'Brief specialist agent',
141
+ description: 'Create and improve briefs so they are ready to use in tasks.',
142
+ prompt: 'I want to create a brief specialist agent.'
143
+ },
144
+ comingSoonCard: {
145
+ title: 'More coming soon',
146
+ description: "We're working to bring you more agents"
147
+ }
148
+ }
149
+ };
150
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
151
+ homeMenu: homeMenu,
152
+ contextMention: {
153
+ keyboardHint: 'Tab navigation: @, @@… in order. Also Alt/Cmd + ←/→',
154
+ recentsTitle: 'Recents',
155
+ userNoPosition: 'No position',
156
+ me: 'Yo',
157
+ tabs: {
158
+ client: 'Client',
159
+ project: 'Project',
160
+ task: 'Task',
161
+ user: 'User',
162
+ mcp: 'Connectors',
163
+ skill: 'Skills'
164
+ },
165
+ loading: 'Searching...',
166
+ error: 'Something went wrong. Please try again.',
167
+ skillQueryTooShort: 'Type at least 3 characters to search',
168
+ empty: {
169
+ recents: 'Start typing to search',
170
+ withQuery: 'No results for "{{query}}"',
171
+ skillNoItems: 'No skills yet',
172
+ skillWithQuery: 'No skills matching "{{query}}"'
173
+ },
174
+ counters: {
175
+ projects: 'projects',
176
+ tasks: 'tasks'
177
+ }
178
+ },
179
+ contextPin: {
180
+ addContext: 'Global context',
181
+ searchPlaceholder: 'Search context…',
182
+ remove: 'Remove context'
183
+ },
184
+ button: 'AI',
185
+ title: 'Hi, {{name}}!',
186
+ description: "I'm MAIA, your assistant, and I'm here to help you with your questions.",
187
+ newChat: 'New chat',
188
+ openAgentCreator: 'Create agent',
189
+ openMarketplace: 'Agent marketplace',
190
+ history: {
191
+ tooltip: 'History',
192
+ title: 'Empty history',
193
+ description: 'No conversations found',
194
+ item: {
195
+ date: 'Last update {{date}}'
196
+ },
197
+ menu: {
198
+ rename: 'Rename',
199
+ "delete": 'Delete'
200
+ },
201
+ loadingMore: 'Loading more conversations'
202
+ },
203
+ onboarding: {
204
+ maia: 'MAIA',
205
+ agentCustom: 'Custom agents',
206
+ howCreateAgent: 'How to create an agent?',
207
+ tooltip: 'How does it work?',
208
+ howItWorks: 'How does it work?'
209
+ },
210
+ qa: {
211
+ title: 'Frequently Asked Questions',
212
+ items: {
213
+ rentabilidad_proyecto: 'What is the profitability of this project?',
214
+ avance_proyecto: 'What is the progress of this project?',
215
+ tareas_proyecto: 'What are the upcoming tasks due?'
216
+ }
217
+ },
218
+ chat: {
219
+ generating: 'Thinking',
220
+ generatingAttachment: 'Analyzing attachment',
221
+ generatingDeepSearch: 'Starting research',
222
+ generatingWebSearch: 'Searching the web',
223
+ suggestionsTitle: 'Suggested responses',
224
+ createAgentActionsTitle: 'Next step',
225
+ createAgentActionStartChat: 'Start a chat with the new agent',
226
+ createAgentActionKnowledge: 'Upload files to the knowledge base',
227
+ createAgentActionLoadError: 'Could not load the agent. Please try again.',
228
+ writing: 'Writing the response',
229
+ executingAction: 'Executing action',
230
+ processing: 'Processing',
231
+ activity: {
232
+ generating: {
233
+ preparing: 'Preparing your response',
234
+ considering: 'Reviewing your question',
235
+ almostReady: 'Shaping the approach'
236
+ },
237
+ thinking: {
238
+ analyzing: 'Analyzing your question',
239
+ reviewing: 'Reviewing context',
240
+ planning: 'Structuring the response'
241
+ },
242
+ search: {
243
+ scanning: 'Searching the web',
244
+ summarizing: 'Reviewing results'
245
+ },
246
+ deepSearch: {
247
+ exploring: 'Exploring sources',
248
+ crossChecking: 'Verifying information'
249
+ },
250
+ attachment: {
251
+ reading: 'Reading your attachment',
252
+ extracting: 'Extracting what matters',
253
+ readingPlural: 'Reading your attachments',
254
+ extractingPlural: 'Extracting what matters'
255
+ },
256
+ writing: {
257
+ composing: 'Writing the response'
258
+ },
259
+ dynamicContextTooltip: 'This context was dynamically generated and may change throughout the conversation.',
260
+ creatingTask: 'Creating task',
261
+ creatingTasksBatch: 'Creating tasks',
262
+ creatingAgent: 'Creating agent',
263
+ editingAgent: 'Editing agent',
264
+ editingTask: 'Editing task',
265
+ editingTasksBatch: 'Editing tasks',
266
+ deletingTask: 'Deleting task',
267
+ deletingTasksBatch: 'Deleting tasks',
268
+ assigningUser: 'Assigning user',
269
+ unassigningUser: 'Unassigning user',
270
+ assigningLabel: 'Assigning label',
271
+ updatingTaskType: 'Updating task type',
272
+ updatingEstimatedHours: 'Updating estimated hours',
273
+ updatingDeliverable: 'Updating deliverable',
274
+ loggingHours: 'Logging hours',
275
+ creatingChecklist: 'Creating checklist',
276
+ creatingLabel: 'Creating label',
277
+ editingProject: 'Editing project',
278
+ creatingChecklistItem: 'Adding checklist item',
279
+ queryingHours: 'Querying hours',
280
+ configuringAgentAccess: 'Changing agent visibility',
281
+ sendingTaskMessage: 'Sending task message',
282
+ deletingChecklistItem: 'Deleting checklist item',
283
+ removingTaskType: 'Removing task type',
284
+ removingLabel: 'Removing label',
285
+ updatingDeliverableCount: 'Updating deliverable count',
286
+ creatingRework: 'Creating rework',
287
+ updatingRework: 'Updating rework',
288
+ generatingFile: 'Generating file',
289
+ resumingAction: 'Running approved action'
290
+ },
291
+ loadingMore: 'Loading more messages',
292
+ footer: {
293
+ placeholder: 'Type your question here…',
294
+ orchestratorPlaceholder: 'Ask Maia, @ to mention or / for quick actions',
295
+ agentLabel: 'The Agent',
296
+ disclaimer: '{{agentName}} may make mistakes. Please verify important information.',
297
+ disclaimerAgent: 'AI models may make mistakes. Verify important information.',
298
+ corAccessLabel: 'COR access',
299
+ corAccessTooltip: 'COR data access'
300
+ },
301
+ error: 'An error occurred while generating your response, please try again.',
302
+ retry: 'Retry',
303
+ errorAccessDenied: "You don't have access to interact with this agent. It is possible that your accessibility settings have changed. Please contact the person in your organization who manages agents for more information.",
304
+ errorPromptTooLong: 'You have exceeded the context limit {{used}} tokens. Please retry or continue in another chat',
305
+ changeProject: 'I detected that you want to change Project.\n\n**Select the project to continue:**',
306
+ searchWeb: 'Search the web',
307
+ deepSearch: 'Advanced internet search (access to more sources)',
308
+ attachFile: 'Attach file',
309
+ plusMenuAttach: 'Attach files',
310
+ dropFilesHere: 'Drop files here',
311
+ plusMenuDeepInvestigation: 'Research in depth',
312
+ plusMenuQuickActions: 'Quick actions',
313
+ openPlusMenuAria: 'Attachments and search options',
314
+ openMentionAria: 'Mention',
315
+ removeAttachmentAria: 'Remove file',
316
+ removeActiveToolAria: 'Remove search mode',
317
+ send: 'Send',
318
+ limitFiles: 'You have exceeded the attachment limit',
319
+ stop: 'Stop generating',
320
+ cancelled: 'The search has been cancelled.',
321
+ tooManyActiveSessions: 'Too many conversations are generating at once. Wait for one to finish before starting another.',
322
+ attachmentPreviewModal: {
323
+ loading: 'Loading...',
324
+ unsupportedFileMessage: 'We had a problem loading the preview. Please try again in a few minutes.',
325
+ typeLabel: 'Type:',
326
+ unknown: 'Unknown',
327
+ sizeLabel: 'Size:',
328
+ excel: {
329
+ sheetSelectorLabel: 'Sheet:',
330
+ loadError: 'Could not load Excel file content.',
331
+ fileReadError: 'Error reading file.',
332
+ sheetLoadError: 'Error loading selected sheet.'
333
+ },
334
+ word: {
335
+ loadError: 'Could not load Word document content.',
336
+ legacyDocUnsupported: 'Preview for .doc files is not available. Please use .docx format.'
337
+ },
338
+ ppt: {
339
+ loadError: 'Could not load presentation content.',
340
+ legacyPptUnsupported: 'Preview for .ppt files is not available. Please use .pptx format.',
341
+ slideLabel: 'Slide {{number}}',
342
+ emptySlide: 'This slide has no text or images to preview.'
343
+ }
344
+ }
345
+ },
346
+ deleteQuestionModal: {
347
+ title: 'Do you want to delete this conversation?',
348
+ firstPart: 'You are about to delete',
349
+ secondPart: 'This action is irreversible.',
350
+ cancel: 'Cancel',
351
+ "delete": 'Delete'
352
+ },
353
+ deleteSkillModal: {
354
+ title: 'Do you want to delete this skill?',
355
+ firstPart: 'You are about to delete',
356
+ secondPart: 'This action is irreversible.',
357
+ cancel: 'Cancel',
358
+ "delete": 'Delete'
359
+ },
360
+ editQuestionModal: {
361
+ newName: 'New name',
362
+ title: 'Rename conversation',
363
+ rename: 'Rename',
364
+ cancel: 'Cancel',
365
+ maxLength: 'You’ve reached the 140-character limit.'
366
+ },
367
+ modalFileExceeds: {
368
+ limitFilesTitle: 'Maximum attachments exceeded.',
369
+ limitSizeTitle: "You've exceeded the allowed file size limit",
370
+ limitFilesDescription: 'You can attach a maximum of 5 files per message. The following files could not be attached:',
371
+ limitSizeDescription: 'One or more files exceed the maximum allowed size by type. The following files could not be attached:',
372
+ accept: 'Accept',
373
+ limit: 'limit'
374
+ },
375
+ sourcesInformationModal: {
376
+ title: 'Sources:'
377
+ },
378
+ agents: {
379
+ title: 'Agents',
380
+ newAgent: 'New agent',
381
+ createAgent: 'Create Agent',
382
+ edit: 'Edit',
383
+ maia: '(Project specialist)',
384
+ addFavorite: 'Add to favorites',
385
+ removeFavorite: 'Remove from favorites',
386
+ favoriteToggledAddedSuccess: 'Agent added to favorites',
387
+ favoriteToggledRemovedSuccess: 'Agent removed from favorites',
388
+ favoriteToggledError: 'Your favorite couldn’t be saved. Please try again.',
389
+ favoriteToggledRemovedError: 'The favorite couldn’t be removed. Please try again.',
390
+ maiaIntroduction: 'Welcome to MAIA, your assistant to make your day-to-day better.'
391
+ },
392
+ conversations: {
393
+ title: 'My conversations',
394
+ agentsSectionTitle: 'Agents',
395
+ maiakerNav: 'Agent builder',
396
+ myAgentsNav: 'My agents',
397
+ mySkillsNav: 'My skills',
398
+ error: 'An error occurred while loading the conversation history',
399
+ empty: 'All your conversations with the agents will be displayed here',
400
+ emptyLabel: 'Message with attachments',
401
+ unreadLabel: 'Unread',
402
+ minimizedOpen: 'Open MAIA',
403
+ minimizedSeeAnswer: 'See answer',
404
+ collapse: 'Collapse',
405
+ expand: 'Expand',
406
+ newChat: 'New chat',
407
+ generating: 'Generating response',
408
+ sessionFinished: '{{title}} finished responding',
409
+ sessionFinishedApproval: '{{title}} requires your approval',
410
+ sessionFinishedError: '{{title}} encountered an error',
411
+ openAgentCreator: 'Create agent',
412
+ openMarketplace: 'Agent marketplace'
413
+ },
414
+ marketplace: {
415
+ back: 'Back',
416
+ title: 'Ideas for building agents',
417
+ description: 'Choose a strong starting point and open the editor with the agent already prefilled so you can adapt it to your use case.',
418
+ myAgentsTitle: 'My agents',
419
+ myAgentsReadyTitle: 'Your agents are ready to help you with tasks',
420
+ myAgentsDescription: 'These are your custom agents. Select one to start chatting with that profile.',
421
+ myAgentsEmptyStateTitle: "You don't have any agents yet",
422
+ myAgentsEmptyStateDescription: 'Click the button below to start creating agents tailored to your needs.',
423
+ myAgentsEmptyStateDescriptionNoPerm: 'When someone with permission sets them up, you will be able to access them from here.',
424
+ myAgentsEmptyStateButton: 'Create agent',
425
+ myAgentsFallbackIntro: 'Custom agent ready to help in your workflow.',
426
+ myAgentsFallbackDescription: 'Click use agent to start a conversation with this agent.',
427
+ myAgentsFallbackDate: 'A few days ago',
428
+ myAgentsToday: 'Today',
429
+ myAgentsOneDayAgo: '1 day ago',
430
+ myAgentsDaysAgo: '{{days}} days ago',
431
+ cardMenuAriaLabel: 'Agent actions menu',
432
+ use: 'Use',
433
+ createAgent: 'Create agent manually',
434
+ searchAgentPlaceholder: 'Search agent...',
435
+ searchMinLength: 'min. 3 characters',
436
+ searchNoResults: 'No results found.',
437
+ searchNoResultsSubtitle: 'Create an AI agent that can think, act, and automate work for you',
438
+ useTemplate: 'Create from this idea',
439
+ useMyAgent: 'Use agent',
440
+ badges: {
441
+ branding: 'Branding',
442
+ linkedin: 'LinkedIn',
443
+ marketing: 'Marketing'
444
+ }
445
+ },
446
+ mySkills: {
447
+ title: 'Your skills ready to power up your agents',
448
+ subtitle: 'Skills are global: they are available to all of your agents.',
449
+ createSkill: 'Create skill',
450
+ preview: 'Preview',
451
+ previewEmpty: 'Nothing to preview yet.',
452
+ uploadMd: 'Upload .md',
453
+ uploadError: 'Only .md files are allowed',
454
+ createWithMaia: 'Create with Maia',
455
+ writeInstructions: 'Write skill instructions',
456
+ uploadSkill: 'Upload a skill',
457
+ generatePlaceholder: 'I want a Skill to create my projects',
458
+ generateWithMaia: 'Create the Skill with Maia',
459
+ generateNeedsName: 'Enter a name first to describe the skill',
460
+ generateSuccess: 'Skill generated with Maia',
461
+ generateError: 'The skill could not be generated. Please try again.',
462
+ cardMenuAriaLabel: 'Skill actions menu',
463
+ edit: 'Edit',
464
+ "delete": 'Delete',
465
+ cancel: 'Cancel',
466
+ save: 'Save',
467
+ close: 'Close',
468
+ createTitle: 'New skill',
469
+ editTitle: 'Edit skill',
470
+ nameLabel: 'Name',
471
+ namePlaceholder: 'Skill name',
472
+ contentLabel: 'Skill',
473
+ contentPlaceholder: 'Write the skill...',
474
+ emptyStateTitle: "You don't have any skills yet",
475
+ emptyStateDescription: 'Click the button below to start creating your skills.',
476
+ emptyStateDescriptionNoPerm: 'When someone with permission sets them up, you will be able to access them from here.',
477
+ emptyStateButton: 'Create skill',
478
+ createSuccess: 'Skill created successfully',
479
+ createError: 'The skill could not be created. Please try again.',
480
+ updateSuccess: 'Skill updated successfully',
481
+ updateError: 'The skill could not be updated. Please try again.',
482
+ deleteSuccess: 'Skill deleted successfully',
483
+ deleteError: 'The skill could not be deleted. Please try again.'
484
+ },
485
+ snackbar: {
486
+ deleteChat: {
487
+ success: 'Chat deleted successfully',
488
+ error: 'An unexpected error occurred. Please, try again.'
489
+ },
490
+ renamedChat: {
491
+ success: 'Conversation renamed successfully',
492
+ error: 'An unexpected error occurred. Please, try again.'
493
+ },
494
+ loadMoreAgents: {
495
+ error: 'An unexpected error occurred. Please, try again.'
496
+ }
497
+ },
498
+ approvalBox: {
499
+ untitledAgent: 'Untitled agent',
500
+ actions: {
501
+ create_task: 'Creation of task',
502
+ create_tasks_batch: 'Creation of tasks',
503
+ create_agent: 'Create agent',
504
+ edit_agent: 'Edit agent',
505
+ edit_project: 'Edit project',
506
+ edit_task: 'Edit task',
507
+ edit_tasks_batch: 'Edit tasks',
508
+ delete_task: 'Delete task',
509
+ delete_tasks_batch: 'Delete tasks',
510
+ task_assign: 'Assign user',
511
+ task_unassign: 'Unassign user',
512
+ assign_task_label: 'Assign label',
513
+ create_labels: 'Create label',
514
+ update_task_type: 'Update task type',
515
+ update_estimated_hours: 'Update estimated hours',
516
+ update_deliverable: 'Update deliverable',
517
+ create_hour: 'Log hours',
518
+ create_checklist: 'Create checklist',
519
+ create_checklist_item: 'Add checklist item',
520
+ clone_task: 'Clone task',
521
+ get_task_date_hours: 'Get hours by date',
522
+ configure_agent_access: 'Change agent visibility',
523
+ send_task_message: 'Send task message',
524
+ delete_checklist_item: 'Delete checklist item',
525
+ remove_task_type: 'Remove task type',
526
+ remove_task_label: 'Remove label',
527
+ count_deliverable: 'Update deliverable count',
528
+ create_rework: 'Create rework',
529
+ update_rework: 'Update rework',
530
+ delete_agent: 'Delete agent',
531
+ unknown: 'Unknown action'
532
+ },
533
+ special: {
534
+ createRework: {
535
+ title: 'Create rework',
536
+ description: 'A rework request will be created on the task with the information below.'
537
+ },
538
+ updateDeliverableChildren: {
539
+ title: 'Update deliverable progress',
540
+ description: 'The progress of linked sub-deliverables for this task will be updated.'
541
+ }
542
+ },
543
+ fields: {
544
+ name: 'Name',
545
+ emoji: 'Emoji',
546
+ introduction: 'Introduction',
547
+ input_placeholder: 'Placeholder',
548
+ user_prompt: 'Main prompt',
549
+ language: 'Language',
550
+ provider: 'Provider',
551
+ model_name: 'Model',
552
+ api_key: 'API key'
553
+ },
554
+ title: 'Confirmation required',
555
+ description: 'You need to approve the following action:',
556
+ approve: 'Approve',
557
+ deny: 'Deny',
558
+ manualApprovalWarning: 'Maia detected that the request was manually approved',
559
+ status: {
560
+ approved: 'Request Approved',
561
+ denied: 'Request Denied'
562
+ }
563
+ },
564
+ chipLlm: {
565
+ tooltip: 'Model: {{model}}'
566
+ },
567
+ clientSelector: {
568
+ project: 'project',
569
+ projects: 'projects'
570
+ }
571
+ })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
572
+ agents: 'Agents',
573
+ layoutMenuTooltip: 'Chat layout',
574
+ layoutSidebar: 'Side chat',
575
+ layoutFullscreen: 'Fullscreen chat',
576
+ layoutFloating: 'Floating chat',
577
+ back: 'Back',
578
+ addAgent: 'Add new agent',
579
+ legendDeletedAgent: 'This agent was deleted on',
580
+ legendProjectDeleted: 'The project {{name}} has been deleted. It is not possible to continue the conversation',
581
+ legendNoAccess: 'You no longer have access to interact with the agent {{name}}',
582
+ legendNoPermissions: 'You no longer have permission to view or interact with the agent {{name}}',
583
+ legendLegacyContextSession: 'This conversation belongs to a previous context. You can continue with {{name}} in a new chat.',
584
+ continueInNewChat: 'Continue in a new chat',
585
+ legendModelDeprecated: 'The model selected for this agent is no longer available. Switch to another model to continue using it.',
586
+ legendProviderStatus: 'The model used by this agent is experiencing temporary issues. You can wait for it to recover or switch to a different model.',
587
+ changeModel: 'Change model',
588
+ newAgent: 'New agent',
589
+ createAgent: 'Create Agent',
590
+ editAgent: 'Edit agent',
591
+ cancel: 'Cancel',
592
+ accept: 'Accept',
593
+ deleteAgent: 'Delete agent',
594
+ "continue": 'Continue',
595
+ edit: 'Edit',
596
+ "delete": 'Delete',
597
+ feedback: 'Send Feedback',
598
+ sendFeedback: 'Send feedback',
599
+ saveChanges: 'Save changes',
600
+ createAgentLabelButton: 'Create agent',
601
+ openAgentCreator: 'Create agent',
602
+ openMarketplace: 'Agent marketplace',
603
+ confirmAgentCreated: 'The agent has been successfully created',
604
+ confirmAgentUpdated: 'The agent has been successfully updated',
605
+ confirmCloseCreateAgent: 'Are you sure you want to close? Changes will be lost.',
606
+ confirmCloseEditAgent: 'Are you sure you want to close? Changes will be lost.',
607
+ confirmReloadBrowser: 'Are you sure you want to reload the page? Changes will be lost.',
608
+ confirmAgentUpdatedWithFilesError: 'The agent was edited successfully, but some files could not be processed.',
609
+ confirmAgentWithFilesError: 'The agent was created successfully, but some files could not be processed.',
610
+ confirmAgentDeleted: 'The agent has been successfully deleted',
611
+ errorAccessDenied: "You don't have permission to access this agent. Contact support.",
612
+ errorAgentCreated: 'An unexpected error occurred. Please, try again.',
613
+ attachmentCard: {
614
+ download: 'Download',
615
+ "delete": 'Delete'
616
+ },
617
+ generalSection: {
618
+ title: 'General',
619
+ generalSettings: 'General settings',
620
+ requiredFieldsLabel: '*required',
621
+ infoLabel: 'Add all the information to customize your agent’s behavior.',
622
+ optionalLabel: 'Optional',
623
+ basicSettings: 'Basic settings',
624
+ selectEmoji: 'Select emoji',
625
+ name: 'What is your agent’s name?',
626
+ namePlaceholder: 'Give your agent a name',
627
+ behaviorSettings: 'Behavior settings',
628
+ initialPrompt: 'What are the instructions?',
629
+ initialPromptPlaceholder: 'Example: You are a social media copywriter who writes and adapts messages for different platforms, ensuring consistency in tone, personality, and brand values.',
630
+ modelAiLabel: 'AI model',
631
+ noModelsAvailable: 'No models available',
632
+ inputPlaceholderTitle: 'What will the user see in the chat field before typing?',
633
+ inputPlaceholder: 'Ask me anything you need…',
634
+ introduction: 'How will your agent introduce itself?',
635
+ introductionPlaceholder: 'Example: Hi! 👋 I’m here to help you create, adapt, and review copy for different platforms, ensuring your brand’s voice, tone, and personality stay consistent. You can ask me to suggest campaign ideas, adapt a message for another channel, or review the coherence of your content.',
636
+ addFavorite: 'Add to favorites',
637
+ removeFavorite: 'Remove from favorites',
638
+ error: {
639
+ maxCaracterName: 'You have reached the 150-character limit.',
640
+ maxCaracterInitialPrompt: 'You’ve reached the 5000-character limit.',
641
+ maxInputPlaceholder: 'You’ve reached the 100-character limit.',
642
+ maxCaracterIntroduction: 'You’ve reached the 400-character limit.'
643
+ },
644
+ howToWritePrompt: 'How to write a prompt',
645
+ whatIsModelAiTitle: 'Which AI model will you use?',
646
+ whatIsModelAi: 'What is a model of AI?',
647
+ createdBy: 'By',
648
+ createdByTooltip: 'Agent creator user',
649
+ createdByTooltipDeleted: 'User deleted. Their name is kept for reference.'
650
+ },
651
+ knowledgeSection: {
652
+ title: 'Knowledge',
653
+ knowledgeTab: 'Knowledge base',
654
+ infoLabel: 'Upload the files your agent will use as a reference for its responses.',
655
+ selectFileTitle: 'Select files',
656
+ attachFiles: 'Attach files',
657
+ dropZoneText: {
658
+ 1: 'Click here to upload',
659
+ 2: 'or drag files'
660
+ },
661
+ infoFileTypes: '.md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx (max. total 5MB)',
662
+ error: {
663
+ maxFilesTitle: 'Total size limit exceeded.',
664
+ maxFilesDescription: 'You can attach files up to a total of 5 MB. The following files could not be attached:',
665
+ maxSizeTitle: 'You have exceeded the allowed file size limit',
666
+ maxSizeDescription: {
667
+ 1: 'The maximum limit of 5 MB was reached.',
668
+ 2: 'These files were not uploaded because they exceed the available space:'
669
+ },
670
+ invalidExtensionDescription: {
671
+ 1: 'Only files with the following extensions are accepted: .md, .pdf, .doc, .docx, .ppt, .pptx, .txt, .csv, .png, .jpg, .jpeg, .xls, .xlsx',
672
+ 2: 'These files were not uploaded because their extension is not allowed:'
673
+ }
674
+ },
675
+ moreInfo: 'See how it works here'
676
+ },
677
+ accessibilitySection: {
678
+ titleTab: 'Permissions',
679
+ titleSection: 'Agent visibility and permissions',
680
+ subtitleSection: 'Define who can use this agent and whether it can access COR data.',
681
+ corPermissionsTitle: 'COR data access permissions',
682
+ corPermissionsSubtitle: 'What can this agent access?',
683
+ taskAccessTitle: 'Task access',
684
+ taskAccessDescription: 'The agent will be able to read, create, update, and delete tasks according to the user’s permissions.',
685
+ visibilityTitle: 'Agent visibility',
686
+ whoCanAccess: 'Who can use this agent?',
687
+ allCompanyTitle: 'Entire company',
688
+ allCompanyDescription: 'All users of your organization will be able to see and use this agent.',
689
+ clientTitle: 'For specific clients',
690
+ clientDescription: 'Associate this agent with one or more clients. All users will be able to see which clients are linked.',
691
+ ownTitle: 'Only me',
692
+ ownDescription: 'This agent will be private and will not be available to other users.',
693
+ clientsSelected: 'Clients selected:',
694
+ searchError: 'Oops! We had trouble loading the clients. Could you try again in a moment?',
695
+ searchEmpty: 'Oops! We couldn’t find clients with that name. Try another search.',
696
+ searchInitial: 'Start typing a client’s name to link it',
697
+ searchPlaceholder: 'Search client',
698
+ clientInactive: 'This client is inactive. We recommend removing it from the list.',
699
+ clientDeletedTooltip: 'This client was deleted. We recommend removing it from the list.',
700
+ clientDeleted: 'Client deleted',
701
+ clientsError: 'Check the associated clients'
702
+ },
703
+ processingKnowledge: {
704
+ descriptionCreate: 'We are creating the Agent and its knowledge base. This may take a few moments. Please do not close this window until the process has been completed.',
705
+ descriptionUpdate: 'We are updating the Agent and its knowledge base. This may take a few moments. Please do not close this window until the process has been completed.',
706
+ fileRow: 'File',
707
+ statusRow: 'Status',
708
+ pending: 'Pending',
709
+ processing: 'Processing',
710
+ failed: 'Failed',
711
+ done: 'Done',
712
+ loadingFiles: 'Loading files...',
713
+ error: {}
714
+ },
715
+ deleteAgentModal: {
716
+ title: 'Do you want to delete this agent?',
717
+ firstPart: 'You are about to delete ',
718
+ secondPart: 'This action cannot be undone.',
719
+ cancel: 'Cancel',
720
+ "delete": 'Delete'
721
+ }
722
+ })), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
723
+ projectSelector: {
724
+ title: 'Which project would you like help with?',
725
+ hello: {
726
+ title: 'I’m MAIA, your project specialist.',
727
+ subtitle: 'To give you accurate answers, I need to know which project we’re talking about. Which one do you choose?'
728
+ },
729
+ subtitle: 'Select a project so MAIA can respond in context.',
730
+ labelProject: 'Select a project',
731
+ placeholder: 'Search for a project by name',
732
+ changeProject: 'Change project',
733
+ recentProjects: 'Recents',
734
+ searchingProjects: 'Searching your projects...',
735
+ errorMessage: 'Oops! We had a problem loading the projects. Please try again in a few minutes.',
736
+ emptyRecentProjects: 'You don’t have recent projects. Type a project name in the search to find it.',
737
+ emptyState: 'Oops! We couldn’t find any projects with that name. Try another search.',
738
+ withoutClient: 'No client',
739
+ withoutTitle: 'No title'
740
+ }
741
+ })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
742
+ clientSelector: {
743
+ title: 'Which client would you like help with?',
744
+ hello: {
745
+ title: "I'm MAIA, your client specialist.",
746
+ subtitle: "To give you accurate answers, I need to know which client we're talking about. Which one do you choose?"
747
+ },
748
+ subtitle: 'Select a client so MAIA can respond in context.',
749
+ labelClient: 'Select a client',
750
+ placeholder: 'Search client by name',
751
+ changeClient: 'Change client',
752
+ recentClients: 'Recents',
753
+ searchingClients: 'Searching your clients...',
754
+ errorMessage: 'We had a problem loading the clients. Please try again in a few minutes.',
755
+ emptyRecentClients: "You don't have recent clients. Type a client name in the search to find it.",
756
+ emptyState: "Oops! We couldn't find clients with that name. Try another search.",
757
+ project: 'project',
758
+ projects: 'projects'
759
+ }
760
+ }));
761
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwicHJvamVjdFN1bW1hcnlUaXRsZSIsInNlbGVjdGVkUHJvamVjdCIsImNvbmZpZ3VyZVJlc3VtZSIsImdlbmVyYXRpbmdSZXN1bWUiLCJnZW5lcmF0ZVJlc3VtZSIsImhpZGVDb25maWciLCJjb25maWd1cmVTZXR0aW5ncyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkdFTkVSQUxfU1RBVFVTIiwiSU5DT01FX0NPU1RTIiwiVElNRV9IT1VSUyIsIlRBU0tTX1BST0dSRVNTIiwiUkVXT1JLUyIsImhvbWVNZW51IiwiZmFxIiwic3RhcnRUaXRsZSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJjb2xsYWJvcmF0b3JzIiwibGFiZWxzIiwiY2hlY2tsaXN0cyIsImRlbGl2ZXJhYmxlcyIsImNyZWF0ZWRCeSIsImNyZWF0ZWRCeVRvb2x0aXAiLCJjcmVhdGVkQnlUb29sdGlwRGVsZXRlZCIsInRhc2tHcmVldGluZyIsInRpdGxlXzEiLCJ0aXRsZV8yIiwidGl0bGVfMyIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJjb250ZXh0TWVudGlvbiIsImtleWJvYXJkSGludCIsInJlY2VudHNUaXRsZSIsInVzZXJOb1Bvc2l0aW9uIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsInNraWxsUXVlcnlUb29TaG9ydCIsInJlY2VudHMiLCJ3aXRoUXVlcnkiLCJza2lsbE5vSXRlbXMiLCJza2lsbFdpdGhRdWVyeSIsImNvdW50ZXJzIiwiY29udGV4dFBpbiIsImFkZENvbnRleHQiLCJzZWFyY2hQbGFjZWhvbGRlciIsInJlbW92ZSIsImJ1dHRvbiIsIm5ld0NoYXQiLCJvcGVuQWdlbnRDcmVhdG9yIiwib3Blbk1hcmtldHBsYWNlIiwiaGlzdG9yeSIsInRvb2x0aXAiLCJpdGVtIiwiZGF0ZSIsIm1lbnUiLCJyZW5hbWUiLCJsb2FkaW5nTW9yZSIsIm9uYm9hcmRpbmciLCJtYWlhIiwiYWdlbnRDdXN0b20iLCJob3dDcmVhdGVBZ2VudCIsImhvd0l0V29ya3MiLCJxYSIsIml0ZW1zIiwicmVudGFiaWxpZGFkX3Byb3llY3RvIiwiYXZhbmNlX3Byb3llY3RvIiwidGFyZWFzX3Byb3llY3RvIiwiY2hhdCIsImdlbmVyYXRpbmciLCJnZW5lcmF0aW5nQXR0YWNobWVudCIsImdlbmVyYXRpbmdEZWVwU2VhcmNoIiwiZ2VuZXJhdGluZ1dlYlNlYXJjaCIsInN1Z2dlc3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZSIsImNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0IiwiY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2UiLCJjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvciIsIndyaXRpbmciLCJleGVjdXRpbmdBY3Rpb24iLCJwcm9jZXNzaW5nIiwiYWN0aXZpdHkiLCJwcmVwYXJpbmciLCJjb25zaWRlcmluZyIsImFsbW9zdFJlYWR5IiwidGhpbmtpbmciLCJhbmFseXppbmciLCJyZXZpZXdpbmciLCJwbGFubmluZyIsInNlYXJjaCIsInNjYW5uaW5nIiwic3VtbWFyaXppbmciLCJkZWVwU2VhcmNoIiwiZXhwbG9yaW5nIiwiY3Jvc3NDaGVja2luZyIsImF0dGFjaG1lbnQiLCJyZWFkaW5nIiwiZXh0cmFjdGluZyIsInJlYWRpbmdQbHVyYWwiLCJleHRyYWN0aW5nUGx1cmFsIiwiY29tcG9zaW5nIiwiZHluYW1pY0NvbnRleHRUb29sdGlwIiwiY3JlYXRpbmdUYXNrIiwiY3JlYXRpbmdUYXNrc0JhdGNoIiwiY3JlYXRpbmdBZ2VudCIsImVkaXRpbmdBZ2VudCIsImVkaXRpbmdUYXNrIiwiZWRpdGluZ1Rhc2tzQmF0Y2giLCJkZWxldGluZ1Rhc2siLCJkZWxldGluZ1Rhc2tzQmF0Y2giLCJhc3NpZ25pbmdVc2VyIiwidW5hc3NpZ25pbmdVc2VyIiwiYXNzaWduaW5nTGFiZWwiLCJ1cGRhdGluZ1Rhc2tUeXBlIiwidXBkYXRpbmdFc3RpbWF0ZWRIb3VycyIsInVwZGF0aW5nRGVsaXZlcmFibGUiLCJsb2dnaW5nSG91cnMiLCJjcmVhdGluZ0NoZWNrbGlzdCIsImNyZWF0aW5nTGFiZWwiLCJlZGl0aW5nUHJvamVjdCIsImNyZWF0aW5nQ2hlY2tsaXN0SXRlbSIsInF1ZXJ5aW5nSG91cnMiLCJjb25maWd1cmluZ0FnZW50QWNjZXNzIiwic2VuZGluZ1Rhc2tNZXNzYWdlIiwiZGVsZXRpbmdDaGVja2xpc3RJdGVtIiwicmVtb3ZpbmdUYXNrVHlwZSIsInJlbW92aW5nTGFiZWwiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQiLCJjcmVhdGluZ1Jld29yayIsInVwZGF0aW5nUmV3b3JrIiwiZ2VuZXJhdGluZ0ZpbGUiLCJyZXN1bWluZ0FjdGlvbiIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwib3JjaGVzdHJhdG9yUGxhY2Vob2xkZXIiLCJhZ2VudExhYmVsIiwiZGlzY2xhaW1lciIsImRpc2NsYWltZXJBZ2VudCIsImNvckFjY2Vzc0xhYmVsIiwiY29yQWNjZXNzVG9vbHRpcCIsInJldHJ5IiwiZXJyb3JBY2Nlc3NEZW5pZWQiLCJlcnJvclByb21wdFRvb0xvbmciLCJjaGFuZ2VQcm9qZWN0Iiwic2VhcmNoV2ViIiwiYXR0YWNoRmlsZSIsInBsdXNNZW51QXR0YWNoIiwiZHJvcEZpbGVzSGVyZSIsInBsdXNNZW51RGVlcEludmVzdGlnYXRpb24iLCJwbHVzTWVudVF1aWNrQWN0aW9ucyIsIm9wZW5QbHVzTWVudUFyaWEiLCJvcGVuTWVudGlvbkFyaWEiLCJyZW1vdmVBdHRhY2htZW50QXJpYSIsInJlbW92ZUFjdGl2ZVRvb2xBcmlhIiwic2VuZCIsImxpbWl0RmlsZXMiLCJzdG9wIiwiY2FuY2VsbGVkIiwidG9vTWFueUFjdGl2ZVNlc3Npb25zIiwiYXR0YWNobWVudFByZXZpZXdNb2RhbCIsInVuc3VwcG9ydGVkRmlsZU1lc3NhZ2UiLCJ0eXBlTGFiZWwiLCJ1bmtub3duIiwic2l6ZUxhYmVsIiwiZXhjZWwiLCJzaGVldFNlbGVjdG9yTGFiZWwiLCJsb2FkRXJyb3IiLCJmaWxlUmVhZEVycm9yIiwic2hlZXRMb2FkRXJyb3IiLCJ3b3JkIiwibGVnYWN5RG9jVW5zdXBwb3J0ZWQiLCJwcHQiLCJsZWdhY3lQcHRVbnN1cHBvcnRlZCIsInNsaWRlTGFiZWwiLCJlbXB0eVNsaWRlIiwiZGVsZXRlUXVlc3Rpb25Nb2RhbCIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJkZWxldGVTa2lsbE1vZGFsIiwiZWRpdFF1ZXN0aW9uTW9kYWwiLCJuZXdOYW1lIiwibWF4TGVuZ3RoIiwibW9kYWxGaWxlRXhjZWVkcyIsImxpbWl0RmlsZXNUaXRsZSIsImxpbWl0U2l6ZVRpdGxlIiwibGltaXRGaWxlc0Rlc2NyaXB0aW9uIiwibGltaXRTaXplRGVzY3JpcHRpb24iLCJhY2NlcHQiLCJsaW1pdCIsInNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIiwiYWdlbnRzIiwibmV3QWdlbnQiLCJjcmVhdGVBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvciIsIm1haWFJbnRyb2R1Y3Rpb24iLCJjb252ZXJzYXRpb25zIiwiYWdlbnRzU2VjdGlvblRpdGxlIiwibWFpYWtlck5hdiIsIm15QWdlbnRzTmF2IiwibXlTa2lsbHNOYXYiLCJlbXB0eUxhYmVsIiwidW5yZWFkTGFiZWwiLCJtaW5pbWl6ZWRPcGVuIiwibWluaW1pemVkU2VlQW5zd2VyIiwic2Vzc2lvbkZpbmlzaGVkIiwic2Vzc2lvbkZpbmlzaGVkQXBwcm92YWwiLCJzZXNzaW9uRmluaXNoZWRFcnJvciIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsInNlYXJjaEFnZW50UGxhY2Vob2xkZXIiLCJzZWFyY2hNaW5MZW5ndGgiLCJzZWFyY2hOb1Jlc3VsdHMiLCJzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZSIsInVzZVRlbXBsYXRlIiwidXNlTXlBZ2VudCIsImJhZGdlcyIsImJyYW5kaW5nIiwibGlua2VkaW4iLCJtYXJrZXRpbmciLCJteVNraWxscyIsImNyZWF0ZVNraWxsIiwicHJldmlldyIsInByZXZpZXdFbXB0eSIsInVwbG9hZE1kIiwidXBsb2FkRXJyb3IiLCJjcmVhdGVXaXRoTWFpYSIsIndyaXRlSW5zdHJ1Y3Rpb25zIiwidXBsb2FkU2tpbGwiLCJnZW5lcmF0ZVBsYWNlaG9sZGVyIiwiZ2VuZXJhdGVXaXRoTWFpYSIsImdlbmVyYXRlTmVlZHNOYW1lIiwiZ2VuZXJhdGVTdWNjZXNzIiwiZ2VuZXJhdGVFcnJvciIsImNyZWF0ZVRpdGxlIiwiZWRpdFRpdGxlIiwibmFtZUxhYmVsIiwibmFtZVBsYWNlaG9sZGVyIiwiY29udGVudExhYmVsIiwiY29udGVudFBsYWNlaG9sZGVyIiwiZW1wdHlTdGF0ZVRpdGxlIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uIiwiZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwiZW1wdHlTdGF0ZUJ1dHRvbiIsImNyZWF0ZVN1Y2Nlc3MiLCJjcmVhdGVFcnJvciIsInVwZGF0ZVN1Y2Nlc3MiLCJ1cGRhdGVFcnJvciIsImRlbGV0ZVN1Y2Nlc3MiLCJkZWxldGVFcnJvciIsInNuYWNrYmFyIiwiZGVsZXRlQ2hhdCIsInN1Y2Nlc3MiLCJyZW5hbWVkQ2hhdCIsImxvYWRNb3JlQWdlbnRzIiwiYXBwcm92YWxCb3giLCJ1bnRpdGxlZEFnZW50IiwiYWN0aW9ucyIsImNyZWF0ZV90YXNrIiwiY3JlYXRlX3Rhc2tzX2JhdGNoIiwiY3JlYXRlX2FnZW50IiwiZWRpdF9hZ2VudCIsImVkaXRfcHJvamVjdCIsImVkaXRfdGFzayIsImVkaXRfdGFza3NfYmF0Y2giLCJkZWxldGVfdGFzayIsImRlbGV0ZV90YXNrc19iYXRjaCIsInRhc2tfYXNzaWduIiwidGFza191bmFzc2lnbiIsImFzc2lnbl90YXNrX2xhYmVsIiwiY3JlYXRlX2xhYmVscyIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY3JlYXRlX2NoZWNrbGlzdF9pdGVtIiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsImFibUFnZW50IiwibGF5b3V0TWVudVRvb2x0aXAiLCJsYXlvdXRTaWRlYmFyIiwibGF5b3V0RnVsbHNjcmVlbiIsImxheW91dEZsb2F0aW5nIiwiYWRkQWdlbnQiLCJsZWdlbmREZWxldGVkQWdlbnQiLCJsZWdlbmRQcm9qZWN0RGVsZXRlZCIsImxlZ2VuZE5vQWNjZXNzIiwibGVnZW5kTm9QZXJtaXNzaW9ucyIsImxlZ2VuZExlZ2FjeUNvbnRleHRTZXNzaW9uIiwiY29udGludWVJbk5ld0NoYXQiLCJsZWdlbmRNb2RlbERlcHJlY2F0ZWQiLCJsZWdlbmRQcm92aWRlclN0YXR1cyIsImNoYW5nZU1vZGVsIiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJjb25maXJtQWdlbnRVcGRhdGVkV2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnRXaXRoRmlsZXNFcnJvciIsImNvbmZpcm1BZ2VudERlbGV0ZWQiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwiY29yUGVybWlzc2lvbnNUaXRsZSIsImNvclBlcm1pc3Npb25zU3VidGl0bGUiLCJ0YXNrQWNjZXNzVGl0bGUiLCJ0YXNrQWNjZXNzRGVzY3JpcHRpb24iLCJ2aXNpYmlsaXR5VGl0bGUiLCJ3aG9DYW5BY2Nlc3MiLCJhbGxDb21wYW55VGl0bGUiLCJhbGxDb21wYW55RGVzY3JpcHRpb24iLCJjbGllbnRUaXRsZSIsImNsaWVudERlc2NyaXB0aW9uIiwib3duVGl0bGUiLCJvd25EZXNjcmlwdGlvbiIsImNsaWVudHNTZWxlY3RlZCIsInNlYXJjaEVycm9yIiwic2VhcmNoRW1wdHkiLCJzZWFyY2hJbml0aWFsIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJjbGllbnRzRXJyb3IiLCJwcm9jZXNzaW5nS25vd2xlZGdlIiwiZGVzY3JpcHRpb25DcmVhdGUiLCJkZXNjcmlwdGlvblVwZGF0ZSIsImZpbGVSb3ciLCJzdGF0dXNSb3ciLCJwZW5kaW5nIiwiZmFpbGVkIiwiZG9uZSIsImxvYWRpbmdGaWxlcyIsImRlbGV0ZUFnZW50TW9kYWwiLCJwcm9qZWN0U2VsZWN0b3IiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsInNlYXJjaGluZ1Byb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2VuL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIG1pbmltaXplOiAnTWluaW1pemUnLFxuICBob3dXb3JrczogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZCcsXG4gIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICBnb0JhY2s6ICdHbyBiYWNrIHRvIHRoZSBzdGFydCcsXG4gIGNvcHk6ICdDb3B5JyxcbiAgY29waWVkOiAnQ29waWVkJyxcbiAgc2F2ZWQ6ICdTYXZlZCcsXG4gIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gIHNhdmU6ICdTYXZlJyxcbiAgY2FuY2VsOiAnQ2FuY2VsJyxcbn1cblxuY29uc3QgZXJyb3IgPSB7XG4gIHRpdGxlOiAnQSBwcm9ibGVtIGhhcyBvY2N1cnJlZCcsXG4gIGRlc2NyaXB0aW9uOiAnV2UgYXJlIGN1cnJlbnRseSBleHBlcmllbmNpbmcgc29tZSBpc3N1ZXMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICB0cnlBZ2FpbjogJ1RyeSBhZ2FpbicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgcHJvamVjdFN1bW1hcnlUaXRsZTogJ1Byb2plY3Qgc3VtbWFyeScsXG4gICAgZ29CYWNrOiAnR28gYmFjaycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnU2VsZWN0ZWQgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1Byb2plY3QgU3VtbWFyeScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSByZXBvcnRzIHdpdGggQUkgYmFzZWQgb24geW91ciBwcm9qZWN0JyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucycsXG4gICAgc3RhcnRUaXRsZTogJ1lvdSBjYW4gc3RhcnQgd2l0aC4uLicsXG4gICAgZW1wdHk6ICdObyBmcmVxdWVudGx5IGFza2VkIHF1ZXN0aW9ucycsXG4gICAgZXJyb3I6ICdPb3BzISBXZSBoYWQgYSBwcm9ibGVtIGxvYWRpbmcgdGhlIGZyZXF1ZW50bHkgYXNrZWQgcXVlc3Rpb25zLiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuJyxcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICBwcm9qZWN0czogJ1Byb2plY3QnLFxuICAgICAgdGFza3M6ICdUYXNrcycsXG4gICAgICBob3VyczogJ0hvdXJzJyxcbiAgICAgIHJld29ya3M6ICdSZXdvcmsnLFxuICAgICAgdW5kZWZpbmVkOiAnTm8gY2F0ZWdvcnknLFxuICAgIH0sXG4gIH0sXG4gIGZ1YToge1xuICAgIHRpdGxlOiAnRnJlcXVlbnRseSB1c2VkIGFjdGlvbnMnLFxuICAgIG5ld0JhZGdlOiAnTmV3JyxcbiAgICBlcnJvcjogJ09vcHMhIFdlIGhhZCBhIHByb2JsZW0gbG9hZGluZyB0aGUgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnMuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICB9LFxuICByZWNlbnRDb250ZXh0czoge1xuICAgIHRpdGxlOiAnQ2hvb3NlIGEgcmVjZW50IGNvbnRleHQgZm9yIGEgbW9yZSBhY2N1cmF0ZSBhbnN3ZXI6JyxcbiAgICB0eXBlczoge1xuICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgIHByb2plY3Q6ICdQcm9qZWN0JyxcbiAgICAgIHRhc2s6ICdUYXNrJyxcbiAgICB9LFxuICB9LFxuICBjb250ZXh0SG9tZToge1xuICAgIGdyZWV0aW5nOiAnSGksIHt7bmFtZX19IPCfkYsnLFxuICAgIHN1YnRpdGxlOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBmb3IgdGFza3MsIHByb2plY3RzLCBhbmQgY2xpZW50cy5cXG5TaGFsbCB3ZSBjb250aW51ZSB3aXRoIHNvbWV0aGluZyByZWNlbnQ/XCIsXG4gICAgc3VidGl0bGVDb2xsYWJvcmF0b3I6IFwiSSdtIE1BSUEsIHlvdXIgYXNzaXN0YW50IGZvciB0YXNrcy4gU2hhbGwgd2UgY29udGludWUgd2l0aCBzb21ldGhpbmcgcmVjZW50P1wiLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yV2l0aEhvdXJzOiAnTG9nIHlvdXIgaG91cnMgb3Igc3RhcnQgYSBjaGF0IGFib3V0IGEgdGFzay4nLFxuICAgIHN1YnRpdGxlTWFuYWdlcldpdGhIb3VyczogJ1doZXJlIHdvdWxkIHlvdSBsaWtlIHRvIHN0YXJ0PycsXG4gICAgaG91cnNTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0xvZyBob3VycycsXG4gICAgfSxcbiAgICByZWNlbnRUYXNrc1NlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnQXNrIGFib3V0IGEgdGFzaycsXG4gICAgICBzdWJ0aXRsZTogJ1BpY2sgYSByZWNlbnQgdGFzayB0byB1c2UgYXMgY29udGV4dC4nLFxuICAgIH0sXG4gICAgcmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdPciByZXN1bWUgc29tZXRoaW5nIHJlY2VudCcsXG4gICAgICBzdWJ0aXRsZTogJ1BpY2sgYSB0YXNrLCBwcm9qZWN0LCBvciBjbGllbnQgdG8gdXNlIGFzIGNvbnRleHQnLFxuICAgIH0sXG4gICAgY29udGV4dEdyZWV0aW5nOiB7XG4gICAgICBwcm9qZWN0OiAnV2hhdCBkbyB5b3Ugd2FudCB1cyB0byBhbmFseXplPyBIb3VycywgZXN0aW1hdGVzLCByZXdvcms/IFlvdSBjaG9vc2UhJyxcbiAgICAgIHRhc2s6IFwiSSdtIGhlcmUgdG8gaGVscCB5b3Ugd2l0aCB0aGlzIHRhc2suIFVzZSBvbmUgb2YgdGhlIGFjdGlvbnMgdG8gZ2V0IHN0YXJ0ZWQuXCIsXG4gICAgICBjbGllbnQ6ICdXaGF0IGRvIHlvdSB3YW50IHVzIHRvIGFuYWx5emU/IFByb2ZpdGFiaWxpdHksIHByb2dyZXNzLCBkZWFkbGluZXM/IFlvdSBjaG9vc2UhJyxcbiAgICB9LFxuICB9LFxuICBwbGFubmVySG9tZToge1xuICAgIHRpdGxlOiBcIkxldCdzIHN0YXJ0IHRyYWNraW5nIHlvdXIgaG91cnNcIixcbiAgICBzdWJ0aXRsZTogJ1doZXJlIHNob3VsZCB3ZSBiZWdpbj8nLFxuICB9LFxuICBhY3Rpb246IHtcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0YXNrczogJ1Rhc2sgYWN0aW9ucycsXG4gICAgICBjb2xsYWJvcmF0b3JzOiAnQ29sbGFib3JhdG9ycyBhbmQgYXNzaWduZWVzJyxcbiAgICAgIGxhYmVsczogJ0xhYmVscyBhbmQgdHlwZXMnLFxuICAgICAgY2hlY2tsaXN0czogJ0NoZWNrbGlzdHMnLFxuICAgICAgZGVsaXZlcmFibGVzOiAnRGVsaXZlcmFibGVzJyxcbiAgICAgIHJld29ya3M6ICdSZXdvcmtzJyxcbiAgICAgIGhvdXJzOiAnVGltZSBsb2dnaW5nJyxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkQnk6ICdieScsXG4gIGNyZWF0ZWRCeVRvb2x0aXA6ICdBZ2VudCBjcmVhdG9yIHVzZXInLFxuICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzZXIgZGVsZXRlZC4gVGhlaXIgbmFtZSBpcyBrZXB0IGZvciByZWZlcmVuY2UuJyxcbiAgdGFza0dyZWV0aW5nOiBcIkknbSBoZXJlIHRvIGhlbHAgeW91IHdpdGggdGhpcyB0YXNrLiBVc2Ugb25lIG9mIHRoZSBhY3Rpb25zIHRvIGdldCBzdGFydGVkLlwiLFxuICBoZWxsbzoge1xuICAgIHRpdGxlOiAnRG9uZSEgSeKAmW0gbm93IHVzaW5nIHRoZSBwcm9qZWN0JyxcbiAgICB0aXRsZV8xOiAnQW50aWNpcGF0ZSBkZXZpYXRpb25zLiBMZXTigJlzIGFuYWx5emUgdGhpcyBwcm9qZWN0LicsXG4gICAgdGl0bGVfMjogJ1doYXQgZG8geW91IHdhbnQgdXMgdG8gYW5hbHl6ZT8gSG91cnMsIGVzdGltYXRlcywgcmV3b3JrPyBZb3UgY2hvb3NlIScsXG4gICAgdGl0bGVfMzogJ0xldOKAmXMgcmV2aWV3IHRoaXMgcHJvamVjdOKAmXMgcHJvZ3Jlc3MuJyxcbiAgICBzdWJ0aXRsZTogJ1RvIGdldCBzdGFydGVkLCBJIGNhbiBoZWxwIHlvdSB3aXRoIHRoZXNlIG9wdGlvbnMuIE9yIGZlZWwgZnJlZSB0byB0eXBlIHlvdXIgcXVlc3Rpb24gZGlyZWN0bHkhJyxcbiAgICB0aXRsZVBtOiAnSGksIHt7bmFtZX19ISBJ4oCZbSB7e2FnZW50fX0sIHlvdXIgYXNzaXN0YW50LicsXG4gICAgc3VidGl0bGVQbTpcbiAgICAgICdUbyBnaXZlIHlvdSBhY2N1cmF0ZSBhbnN3ZXJzLCBJIG5lZWQgdG8ga25vdyB3aGljaCBwcm9qZWN0IHdl4oCZcmUgdGFsa2luZyBhYm91dC4gV2hpY2ggb25lIGRvIHlvdSBjaG9vc2U/JyxcbiAgfSxcbiAgbWFpYWtlcjoge1xuICAgIHRpdGxlOiAnVHVybiByZXBldGl0aXZlIHByb2Nlc3NlcyBpbnRvIHNtYXJ0IGFnZW50cycsXG4gICAgZGVzY3JpcHRpb246ICdDcmVhdGUgYWdlbnRzIHRoYXQgYW5hbHl6ZSBhbmQgZ2VuZXJhdGUgY29udGVudCB0YWlsb3JlZCB0byB5b3VyIG5lZWRzLicsXG4gICAgY3JlYXRlTWFudWFsQWdlbnQ6ICdDcmVhdGUgYWdlbnQgbWFudWFsbHknLFxuICAgIGJhZGdlTmV3OiAnTmV3JyxcbiAgICBicmllZkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnQnJpZWYgc3BlY2lhbGlzdCBhZ2VudCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhbmQgaW1wcm92ZSBicmllZnMgc28gdGhleSBhcmUgcmVhZHkgdG8gdXNlIGluIHRhc2tzLicsXG4gICAgICBwcm9tcHQ6ICdJIHdhbnQgdG8gY3JlYXRlIGEgYnJpZWYgc3BlY2lhbGlzdCBhZ2VudC4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnTW9yZSBjb21pbmcgc29vbicsXG4gICAgICBkZXNjcmlwdGlvbjogXCJXZSdyZSB3b3JraW5nIHRvIGJyaW5nIHlvdSBtb3JlIGFnZW50c1wiLFxuICAgIH0sXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgW1NFQ1RJT05TLnByb2plY3RTdW1tYXJ5XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgfSxcbiAgW1NFQ1RJT05TLmNoYXRBSV06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICAuLi5wcm9qZWN0U3VtbWFyeVNlY3Rpb24sXG4gICAgaG9tZU1lbnUsXG5cbiAgICBjb250ZXh0TWVudGlvbjoge1xuICAgICAga2V5Ym9hcmRIaW50OiAnVGFiIG5hdmlnYXRpb246IEAsIEBA4oCmIGluIG9yZGVyLiBBbHNvIEFsdC9DbWQgKyDihpAv4oaSJyxcbiAgICAgIHJlY2VudHNUaXRsZTogJ1JlY2VudHMnLFxuICAgICAgdXNlck5vUG9zaXRpb246ICdObyBwb3NpdGlvbicsXG4gICAgICBtZTogJ1lvJyxcbiAgICAgIHRhYnM6IHtcbiAgICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgICAgcHJvamVjdDogJ1Byb2plY3QnLFxuICAgICAgICB0YXNrOiAnVGFzaycsXG4gICAgICAgIHVzZXI6ICdVc2VyJyxcbiAgICAgICAgbWNwOiAnQ29ubmVjdG9ycycsXG4gICAgICAgIHNraWxsOiAnU2tpbGxzJyxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiAnU2VhcmNoaW5nLi4uJyxcbiAgICAgIGVycm9yOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIHNraWxsUXVlcnlUb29TaG9ydDogJ1R5cGUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzIHRvIHNlYXJjaCcsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnU3RhcnQgdHlwaW5nIHRvIHNlYXJjaCcsXG4gICAgICAgIHdpdGhRdWVyeTogJ05vIHJlc3VsdHMgZm9yIFwie3txdWVyeX19XCInLFxuICAgICAgICBza2lsbE5vSXRlbXM6ICdObyBza2lsbHMgeWV0JyxcbiAgICAgICAgc2tpbGxXaXRoUXVlcnk6ICdObyBza2lsbHMgbWF0Y2hpbmcgXCJ7e3F1ZXJ5fX1cIicsXG4gICAgICB9LFxuICAgICAgY291bnRlcnM6IHtcbiAgICAgICAgcHJvamVjdHM6ICdwcm9qZWN0cycsXG4gICAgICAgIHRhc2tzOiAndGFza3MnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbnRleHRQaW46IHtcbiAgICAgIGFkZENvbnRleHQ6ICdHbG9iYWwgY29udGV4dCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjb250ZXh04oCmJyxcbiAgICAgIHJlbW92ZTogJ1JlbW92ZSBjb250ZXh0JyxcbiAgICB9LFxuICAgIGJ1dHRvbjogJ0FJJyxcbiAgICB0aXRsZTogJ0hpLCB7e25hbWV9fSEnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCwgYW5kIEknbSBoZXJlIHRvIGhlbHAgeW91IHdpdGggeW91ciBxdWVzdGlvbnMuXCIsXG4gICAgbmV3Q2hhdDogJ05ldyBjaGF0JyxcbiAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JlYXRlIGFnZW50JyxcbiAgICBvcGVuTWFya2V0cGxhY2U6ICdBZ2VudCBtYXJrZXRwbGFjZScsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3RvcnknLFxuICAgICAgdGl0bGU6ICdFbXB0eSBoaXN0b3J5JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTm8gY29udmVyc2F0aW9ucyBmb3VuZCcsXG4gICAgICBpdGVtOiB7XG4gICAgICAgIGRhdGU6ICdMYXN0IHVwZGF0ZSB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5hbWUnLFxuICAgICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnTG9hZGluZyBtb3JlIGNvbnZlcnNhdGlvbnMnLFxuICAgIH0sXG4gICAgb25ib2FyZGluZzoge1xuICAgICAgbWFpYTogJ01BSUEnLFxuICAgICAgYWdlbnRDdXN0b206ICdDdXN0b20gYWdlbnRzJyxcbiAgICAgIGhvd0NyZWF0ZUFnZW50OiAnSG93IHRvIGNyZWF0ZSBhbiBhZ2VudD8nLFxuICAgICAgdG9vbHRpcDogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgICAgIGhvd0l0V29ya3M6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucycsXG4gICAgICBpdGVtczoge1xuICAgICAgICByZW50YWJpbGlkYWRfcHJveWVjdG86ICdXaGF0IGlzIHRoZSBwcm9maXRhYmlsaXR5IG9mIHRoaXMgcHJvamVjdD8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdXaGF0IGlzIHRoZSBwcm9ncmVzcyBvZiB0aGlzIHByb2plY3Q/JyxcbiAgICAgICAgdGFyZWFzX3Byb3llY3RvOiAnV2hhdCBhcmUgdGhlIHVwY29taW5nIHRhc2tzIGR1ZT8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXQ6IHtcbiAgICAgIGdlbmVyYXRpbmc6ICdUaGlua2luZycsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogJ0FuYWx5emluZyBhdHRhY2htZW50JyxcbiAgICAgIGdlbmVyYXRpbmdEZWVwU2VhcmNoOiAnU3RhcnRpbmcgcmVzZWFyY2gnLFxuICAgICAgZ2VuZXJhdGluZ1dlYlNlYXJjaDogJ1NlYXJjaGluZyB0aGUgd2ViJyxcbiAgICAgIHN1Z2dlc3Rpb25zVGl0bGU6ICdTdWdnZXN0ZWQgcmVzcG9uc2VzJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uc1RpdGxlOiAnTmV4dCBzdGVwJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0OiAnU3RhcnQgYSBjaGF0IHdpdGggdGhlIG5ldyBhZ2VudCcsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbktub3dsZWRnZTogJ1VwbG9hZCBmaWxlcyB0byB0aGUga25vd2xlZGdlIGJhc2UnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3I6ICdDb3VsZCBub3QgbG9hZCB0aGUgYWdlbnQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIHdyaXRpbmc6ICdXcml0aW5nIHRoZSByZXNwb25zZScsXG4gICAgICBleGVjdXRpbmdBY3Rpb246ICdFeGVjdXRpbmcgYWN0aW9uJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNzaW5nJyxcbiAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgIGdlbmVyYXRpbmc6IHtcbiAgICAgICAgICBwcmVwYXJpbmc6ICdQcmVwYXJpbmcgeW91ciByZXNwb25zZScsXG4gICAgICAgICAgY29uc2lkZXJpbmc6ICdSZXZpZXdpbmcgeW91ciBxdWVzdGlvbicsXG4gICAgICAgICAgYWxtb3N0UmVhZHk6ICdTaGFwaW5nIHRoZSBhcHByb2FjaCcsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaW5raW5nOiB7XG4gICAgICAgICAgYW5hbHl6aW5nOiAnQW5hbHl6aW5nIHlvdXIgcXVlc3Rpb24nLFxuICAgICAgICAgIHJldmlld2luZzogJ1Jldmlld2luZyBjb250ZXh0JyxcbiAgICAgICAgICBwbGFubmluZzogJ1N0cnVjdHVyaW5nIHRoZSByZXNwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDoge1xuICAgICAgICAgIHNjYW5uaW5nOiAnU2VhcmNoaW5nIHRoZSB3ZWInLFxuICAgICAgICAgIHN1bW1hcml6aW5nOiAnUmV2aWV3aW5nIHJlc3VsdHMnLFxuICAgICAgICB9LFxuICAgICAgICBkZWVwU2VhcmNoOiB7XG4gICAgICAgICAgZXhwbG9yaW5nOiAnRXhwbG9yaW5nIHNvdXJjZXMnLFxuICAgICAgICAgIGNyb3NzQ2hlY2tpbmc6ICdWZXJpZnlpbmcgaW5mb3JtYXRpb24nLFxuICAgICAgICB9LFxuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgcmVhZGluZzogJ1JlYWRpbmcgeW91ciBhdHRhY2htZW50JyxcbiAgICAgICAgICBleHRyYWN0aW5nOiAnRXh0cmFjdGluZyB3aGF0IG1hdHRlcnMnLFxuICAgICAgICAgIHJlYWRpbmdQbHVyYWw6ICdSZWFkaW5nIHlvdXIgYXR0YWNobWVudHMnLFxuICAgICAgICAgIGV4dHJhY3RpbmdQbHVyYWw6ICdFeHRyYWN0aW5nIHdoYXQgbWF0dGVycycsXG4gICAgICAgIH0sXG4gICAgICAgIHdyaXRpbmc6IHtcbiAgICAgICAgICBjb21wb3Npbmc6ICdXcml0aW5nIHRoZSByZXNwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIGR5bmFtaWNDb250ZXh0VG9vbHRpcDogJ1RoaXMgY29udGV4dCB3YXMgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGFuZCBtYXkgY2hhbmdlIHRocm91Z2hvdXQgdGhlIGNvbnZlcnNhdGlvbi4nLFxuICAgICAgICBjcmVhdGluZ1Rhc2s6ICdDcmVhdGluZyB0YXNrJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrc0JhdGNoOiAnQ3JlYXRpbmcgdGFza3MnLFxuICAgICAgICBjcmVhdGluZ0FnZW50OiAnQ3JlYXRpbmcgYWdlbnQnLFxuICAgICAgICBlZGl0aW5nQWdlbnQ6ICdFZGl0aW5nIGFnZW50JyxcbiAgICAgICAgZWRpdGluZ1Rhc2s6ICdFZGl0aW5nIHRhc2snLFxuICAgICAgICBlZGl0aW5nVGFza3NCYXRjaDogJ0VkaXRpbmcgdGFza3MnLFxuICAgICAgICBkZWxldGluZ1Rhc2s6ICdEZWxldGluZyB0YXNrJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrc0JhdGNoOiAnRGVsZXRpbmcgdGFza3MnLFxuICAgICAgICBhc3NpZ25pbmdVc2VyOiAnQXNzaWduaW5nIHVzZXInLFxuICAgICAgICB1bmFzc2lnbmluZ1VzZXI6ICdVbmFzc2lnbmluZyB1c2VyJyxcbiAgICAgICAgYXNzaWduaW5nTGFiZWw6ICdBc3NpZ25pbmcgbGFiZWwnLFxuICAgICAgICB1cGRhdGluZ1Rhc2tUeXBlOiAnVXBkYXRpbmcgdGFzayB0eXBlJyxcbiAgICAgICAgdXBkYXRpbmdFc3RpbWF0ZWRIb3VyczogJ1VwZGF0aW5nIGVzdGltYXRlZCBob3VycycsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGU6ICdVcGRhdGluZyBkZWxpdmVyYWJsZScsXG4gICAgICAgIGxvZ2dpbmdIb3VyczogJ0xvZ2dpbmcgaG91cnMnLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdDogJ0NyZWF0aW5nIGNoZWNrbGlzdCcsXG4gICAgICAgIGNyZWF0aW5nTGFiZWw6ICdDcmVhdGluZyBsYWJlbCcsXG4gICAgICAgIGVkaXRpbmdQcm9qZWN0OiAnRWRpdGluZyBwcm9qZWN0JyxcbiAgICAgICAgY3JlYXRpbmdDaGVja2xpc3RJdGVtOiAnQWRkaW5nIGNoZWNrbGlzdCBpdGVtJyxcbiAgICAgICAgcXVlcnlpbmdIb3VyczogJ1F1ZXJ5aW5nIGhvdXJzJyxcbiAgICAgICAgY29uZmlndXJpbmdBZ2VudEFjY2VzczogJ0NoYW5naW5nIGFnZW50IHZpc2liaWxpdHknLFxuICAgICAgICBzZW5kaW5nVGFza01lc3NhZ2U6ICdTZW5kaW5nIHRhc2sgbWVzc2FnZScsXG4gICAgICAgIGRlbGV0aW5nQ2hlY2tsaXN0SXRlbTogJ0RlbGV0aW5nIGNoZWNrbGlzdCBpdGVtJyxcbiAgICAgICAgcmVtb3ZpbmdUYXNrVHlwZTogJ1JlbW92aW5nIHRhc2sgdHlwZScsXG4gICAgICAgIHJlbW92aW5nTGFiZWw6ICdSZW1vdmluZyBsYWJlbCcsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGVDb3VudDogJ1VwZGF0aW5nIGRlbGl2ZXJhYmxlIGNvdW50JyxcbiAgICAgICAgY3JlYXRpbmdSZXdvcms6ICdDcmVhdGluZyByZXdvcmsnLFxuICAgICAgICB1cGRhdGluZ1Jld29yazogJ1VwZGF0aW5nIHJld29yaycsXG4gICAgICAgIGdlbmVyYXRpbmdGaWxlOiAnR2VuZXJhdGluZyBmaWxlJyxcbiAgICAgICAgcmVzdW1pbmdBY3Rpb246ICdSdW5uaW5nIGFwcHJvdmVkIGFjdGlvbicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdMb2FkaW5nIG1vcmUgbWVzc2FnZXMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnVHlwZSB5b3VyIHF1ZXN0aW9uIGhlcmXigKYnLFxuICAgICAgICBvcmNoZXN0cmF0b3JQbGFjZWhvbGRlcjogJ0FzayBNYWlhLCBAIHRvIG1lbnRpb24gb3IgLyBmb3IgcXVpY2sgYWN0aW9ucycsXG4gICAgICAgIGFnZW50TGFiZWw6ICdUaGUgQWdlbnQnLFxuICAgICAgICBkaXNjbGFpbWVyOiAne3thZ2VudE5hbWV9fSBtYXkgbWFrZSBtaXN0YWtlcy4gUGxlYXNlIHZlcmlmeSBpbXBvcnRhbnQgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgZGlzY2xhaW1lckFnZW50OiAnQUkgbW9kZWxzIG1heSBtYWtlIG1pc3Rha2VzLiBWZXJpZnkgaW1wb3J0YW50IGluZm9ybWF0aW9uLicsXG4gICAgICAgIGNvckFjY2Vzc0xhYmVsOiAnQ09SIGFjY2VzcycsXG4gICAgICAgIGNvckFjY2Vzc1Rvb2x0aXA6ICdDT1IgZGF0YSBhY2Nlc3MnLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2VuZXJhdGluZyB5b3VyIHJlc3BvbnNlLCBwbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICByZXRyeTogJ1JldHJ5JyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBlcnJvclByb21wdFRvb0xvbmc6XG4gICAgICAgICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgY29udGV4dCBsaW1pdCB7e3VzZWR9fSB0b2tlbnMuIFBsZWFzZSByZXRyeSBvciBjb250aW51ZSBpbiBhbm90aGVyIGNoYXQnLFxuICAgICAgY2hhbmdlUHJvamVjdDogJ0kgZGV0ZWN0ZWQgdGhhdCB5b3Ugd2FudCB0byBjaGFuZ2UgUHJvamVjdC5cXG5cXG4qKlNlbGVjdCB0aGUgcHJvamVjdCB0byBjb250aW51ZToqKicsXG4gICAgICBzZWFyY2hXZWI6ICdTZWFyY2ggdGhlIHdlYicsXG4gICAgICBkZWVwU2VhcmNoOiAnQWR2YW5jZWQgaW50ZXJuZXQgc2VhcmNoIChhY2Nlc3MgdG8gbW9yZSBzb3VyY2VzKScsXG4gICAgICBhdHRhY2hGaWxlOiAnQXR0YWNoIGZpbGUnLFxuICAgICAgcGx1c01lbnVBdHRhY2g6ICdBdHRhY2ggZmlsZXMnLFxuICAgICAgZHJvcEZpbGVzSGVyZTogJ0Ryb3AgZmlsZXMgaGVyZScsXG4gICAgICBwbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uOiAnUmVzZWFyY2ggaW4gZGVwdGgnLFxuICAgICAgcGx1c01lbnVRdWlja0FjdGlvbnM6ICdRdWljayBhY3Rpb25zJyxcbiAgICAgIG9wZW5QbHVzTWVudUFyaWE6ICdBdHRhY2htZW50cyBhbmQgc2VhcmNoIG9wdGlvbnMnLFxuICAgICAgb3Blbk1lbnRpb25BcmlhOiAnTWVudGlvbicsXG4gICAgICByZW1vdmVBdHRhY2htZW50QXJpYTogJ1JlbW92ZSBmaWxlJyxcbiAgICAgIHJlbW92ZUFjdGl2ZVRvb2xBcmlhOiAnUmVtb3ZlIHNlYXJjaCBtb2RlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICAgIGxpbWl0RmlsZXM6ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgYXR0YWNobWVudCBsaW1pdCcsXG4gICAgICBzdG9wOiAnU3RvcCBnZW5lcmF0aW5nJyxcbiAgICAgIGNhbmNlbGxlZDogJ1RoZSBzZWFyY2ggaGFzIGJlZW4gY2FuY2VsbGVkLicsXG4gICAgICB0b29NYW55QWN0aXZlU2Vzc2lvbnM6XG4gICAgICAgICdUb28gbWFueSBjb252ZXJzYXRpb25zIGFyZSBnZW5lcmF0aW5nIGF0IG9uY2UuIFdhaXQgZm9yIG9uZSB0byBmaW5pc2ggYmVmb3JlIHN0YXJ0aW5nIGFub3RoZXIuJyxcbiAgICAgIGF0dGFjaG1lbnRQcmV2aWV3TW9kYWw6IHtcbiAgICAgICAgbG9hZGluZzogJ0xvYWRpbmcuLi4nLFxuICAgICAgICB1bnN1cHBvcnRlZEZpbGVNZXNzYWdlOiAnV2UgaGFkIGEgcHJvYmxlbSBsb2FkaW5nIHRoZSBwcmV2aWV3LiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuJyxcbiAgICAgICAgdHlwZUxhYmVsOiAnVHlwZTonLFxuICAgICAgICB1bmtub3duOiAnVW5rbm93bicsXG4gICAgICAgIHNpemVMYWJlbDogJ1NpemU6JyxcbiAgICAgICAgZXhjZWw6IHtcbiAgICAgICAgICBzaGVldFNlbGVjdG9yTGFiZWw6ICdTaGVldDonLFxuICAgICAgICAgIGxvYWRFcnJvcjogJ0NvdWxkIG5vdCBsb2FkIEV4Y2VsIGZpbGUgY29udGVudC4nLFxuICAgICAgICAgIGZpbGVSZWFkRXJyb3I6ICdFcnJvciByZWFkaW5nIGZpbGUuJyxcbiAgICAgICAgICBzaGVldExvYWRFcnJvcjogJ0Vycm9yIGxvYWRpbmcgc2VsZWN0ZWQgc2hlZXQuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd29yZDoge1xuICAgICAgICAgIGxvYWRFcnJvcjogJ0NvdWxkIG5vdCBsb2FkIFdvcmQgZG9jdW1lbnQgY29udGVudC4nLFxuICAgICAgICAgIGxlZ2FjeURvY1Vuc3VwcG9ydGVkOiAnUHJldmlldyBmb3IgLmRvYyBmaWxlcyBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgdXNlIC5kb2N4IGZvcm1hdC4nLFxuICAgICAgICB9LFxuICAgICAgICBwcHQ6IHtcbiAgICAgICAgICBsb2FkRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBwcmVzZW50YXRpb24gY29udGVudC4nLFxuICAgICAgICAgIGxlZ2FjeVBwdFVuc3VwcG9ydGVkOiAnUHJldmlldyBmb3IgLnBwdCBmaWxlcyBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgdXNlIC5wcHR4IGZvcm1hdC4nLFxuICAgICAgICAgIHNsaWRlTGFiZWw6ICdTbGlkZSB7e251bWJlcn19JyxcbiAgICAgICAgICBlbXB0eVNsaWRlOiAnVGhpcyBzbGlkZSBoYXMgbm8gdGV4dCBvciBpbWFnZXMgdG8gcHJldmlldy4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgY29udmVyc2F0aW9uPycsXG4gICAgICBmaXJzdFBhcnQ6ICdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZScsXG4gICAgICBzZWNvbmRQYXJ0OiAnVGhpcyBhY3Rpb24gaXMgaXJyZXZlcnNpYmxlLicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICB9LFxuICAgIGRlbGV0ZVNraWxsTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRG8geW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgc2tpbGw/JyxcbiAgICAgIGZpcnN0UGFydDogJ1lvdSBhcmUgYWJvdXQgdG8gZGVsZXRlJyxcbiAgICAgIHNlY29uZFBhcnQ6ICdUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3XigJl2ZSByZWFjaGVkIHRoZSAxNDAtY2hhcmFjdGVyIGxpbWl0LicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNYXhpbXVtIGF0dGFjaG1lbnRzIGV4Y2VlZGVkLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogXCJZb3UndmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0XCIsXG4gICAgICBsaW1pdEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICdZb3UgY2FuIGF0dGFjaCBhIG1heGltdW0gb2YgNSBmaWxlcyBwZXIgbWVzc2FnZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnT25lIG9yIG1vcmUgZmlsZXMgZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBieSB0eXBlLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNvdWxkIG5vdCBiZSBhdHRhY2hlZDonLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGxpbWl0OiAnbGltaXQnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnU291cmNlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50cycsXG4gICAgICBuZXdBZ2VudDogJ05ldyBhZ2VudCcsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyZWF0ZSBBZ2VudCcsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBtYWlhOiAnKFByb2plY3Qgc3BlY2lhbGlzdCknLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZGQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIHJlbW92ZUZhdm9yaXRlOiAnUmVtb3ZlIGZyb20gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEFkZGVkU3VjY2VzczogJ0FnZW50IGFkZGVkIHRvIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50IHJlbW92ZWQgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdZb3VyIGZhdm9yaXRlIGNvdWxkbuKAmXQgYmUgc2F2ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvcjogJ1RoZSBmYXZvcml0ZSBjb3VsZG7igJl0IGJlIHJlbW92ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdXZWxjb21lIHRvIE1BSUEsIHlvdXIgYXNzaXN0YW50IHRvIG1ha2UgeW91ciBkYXktdG8tZGF5IGJldHRlci4nLFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uczoge1xuICAgICAgdGl0bGU6ICdNeSBjb252ZXJzYXRpb25zJyxcbiAgICAgIGFnZW50c1NlY3Rpb25UaXRsZTogJ0FnZW50cycsXG4gICAgICBtYWlha2VyTmF2OiAnQWdlbnQgYnVpbGRlcicsXG4gICAgICBteUFnZW50c05hdjogJ015IGFnZW50cycsXG4gICAgICBteVNraWxsc05hdjogJ015IHNraWxscycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiAnQWxsIHlvdXIgY29udmVyc2F0aW9ucyB3aXRoIHRoZSBhZ2VudHMgd2lsbCBiZSBkaXNwbGF5ZWQgaGVyZScsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIHVucmVhZExhYmVsOiAnVW5yZWFkJyxcbiAgICAgIG1pbmltaXplZE9wZW46ICdPcGVuIE1BSUEnLFxuICAgICAgbWluaW1pemVkU2VlQW5zd2VyOiAnU2VlIGFuc3dlcicsXG4gICAgICBjb2xsYXBzZTogJ0NvbGxhcHNlJyxcbiAgICAgIGV4cGFuZDogJ0V4cGFuZCcsXG4gICAgICBuZXdDaGF0OiAnTmV3IGNoYXQnLFxuICAgICAgZ2VuZXJhdGluZzogJ0dlbmVyYXRpbmcgcmVzcG9uc2UnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkOiAne3t0aXRsZX19IGZpbmlzaGVkIHJlc3BvbmRpbmcnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkQXBwcm92YWw6ICd7e3RpdGxlfX0gcmVxdWlyZXMgeW91ciBhcHByb3ZhbCcsXG4gICAgICBzZXNzaW9uRmluaXNoZWRFcnJvcjogJ3t7dGl0bGV9fSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsXG4gICAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JlYXRlIGFnZW50JyxcbiAgICAgIG9wZW5NYXJrZXRwbGFjZTogJ0FnZW50IG1hcmtldHBsYWNlJyxcbiAgICB9LFxuICAgIG1hcmtldHBsYWNlOiB7XG4gICAgICBiYWNrOiAnQmFjaycsXG4gICAgICB0aXRsZTogJ0lkZWFzIGZvciBidWlsZGluZyBhZ2VudHMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdDaG9vc2UgYSBzdHJvbmcgc3RhcnRpbmcgcG9pbnQgYW5kIG9wZW4gdGhlIGVkaXRvciB3aXRoIHRoZSBhZ2VudCBhbHJlYWR5IHByZWZpbGxlZCBzbyB5b3UgY2FuIGFkYXB0IGl0IHRvIHlvdXIgdXNlIGNhc2UuJyxcbiAgICAgIG15QWdlbnRzVGl0bGU6ICdNeSBhZ2VudHMnLFxuICAgICAgbXlBZ2VudHNSZWFkeVRpdGxlOiAnWW91ciBhZ2VudHMgYXJlIHJlYWR5IHRvIGhlbHAgeW91IHdpdGggdGFza3MnLFxuICAgICAgbXlBZ2VudHNEZXNjcmlwdGlvbjogJ1RoZXNlIGFyZSB5b3VyIGN1c3RvbSBhZ2VudHMuIFNlbGVjdCBvbmUgdG8gc3RhcnQgY2hhdHRpbmcgd2l0aCB0aGF0IHByb2ZpbGUuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlOiBcIllvdSBkb24ndCBoYXZlIGFueSBhZ2VudHMgeWV0XCIsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0NsaWNrIHRoZSBidXR0b24gYmVsb3cgdG8gc3RhcnQgY3JlYXRpbmcgYWdlbnRzIHRhaWxvcmVkIHRvIHlvdXIgbmVlZHMuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnV2hlbiBzb21lb25lIHdpdGggcGVybWlzc2lvbiBzZXRzIHRoZW0gdXAsIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZW0gZnJvbSBoZXJlLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVCdXR0b246ICdDcmVhdGUgYWdlbnQnLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0ludHJvOiAnQ3VzdG9tIGFnZW50IHJlYWR5IHRvIGhlbHAgaW4geW91ciB3b3JrZmxvdy4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uOiAnQ2xpY2sgdXNlIGFnZW50IHRvIHN0YXJ0IGEgY29udmVyc2F0aW9uIHdpdGggdGhpcyBhZ2VudC4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0RhdGU6ICdBIGZldyBkYXlzIGFnbycsXG4gICAgICBteUFnZW50c1RvZGF5OiAnVG9kYXknLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICcxIGRheSBhZ28nLFxuICAgICAgbXlBZ2VudHNEYXlzQWdvOiAne3tkYXlzfX0gZGF5cyBhZ28nLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6ICdBZ2VudCBhY3Rpb25zIG1lbnUnLFxuICAgICAgdXNlOiAnVXNlJyxcbiAgICAgIGNyZWF0ZUFnZW50OiAnQ3JlYXRlIGFnZW50IG1hbnVhbGx5JyxcbiAgICAgIHNlYXJjaEFnZW50UGxhY2Vob2xkZXI6ICdTZWFyY2ggYWdlbnQuLi4nLFxuICAgICAgc2VhcmNoTWluTGVuZ3RoOiAnbWluLiAzIGNoYXJhY3RlcnMnLFxuICAgICAgc2VhcmNoTm9SZXN1bHRzOiAnTm8gcmVzdWx0cyBmb3VuZC4nLFxuICAgICAgc2VhcmNoTm9SZXN1bHRzU3VidGl0bGU6ICdDcmVhdGUgYW4gQUkgYWdlbnQgdGhhdCBjYW4gdGhpbmssIGFjdCwgYW5kIGF1dG9tYXRlIHdvcmsgZm9yIHlvdScsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyZWF0ZSBmcm9tIHRoaXMgaWRlYScsXG4gICAgICB1c2VNeUFnZW50OiAnVXNlIGFnZW50JyxcbiAgICAgIGJhZGdlczoge1xuICAgICAgICBicmFuZGluZzogJ0JyYW5kaW5nJyxcbiAgICAgICAgbGlua2VkaW46ICdMaW5rZWRJbicsXG4gICAgICAgIG1hcmtldGluZzogJ01hcmtldGluZycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgbXlTa2lsbHM6IHtcbiAgICAgIHRpdGxlOiAnWW91ciBza2lsbHMgcmVhZHkgdG8gcG93ZXIgdXAgeW91ciBhZ2VudHMnLFxuICAgICAgc3VidGl0bGU6ICdTa2lsbHMgYXJlIGdsb2JhbDogdGhleSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBvZiB5b3VyIGFnZW50cy4nLFxuICAgICAgY3JlYXRlU2tpbGw6ICdDcmVhdGUgc2tpbGwnLFxuICAgICAgcHJldmlldzogJ1ByZXZpZXcnLFxuICAgICAgcHJldmlld0VtcHR5OiAnTm90aGluZyB0byBwcmV2aWV3IHlldC4nLFxuICAgICAgdXBsb2FkTWQ6ICdVcGxvYWQgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnT25seSAubWQgZmlsZXMgYXJlIGFsbG93ZWQnLFxuICAgICAgY3JlYXRlV2l0aE1haWE6ICdDcmVhdGUgd2l0aCBNYWlhJyxcbiAgICAgIHdyaXRlSW5zdHJ1Y3Rpb25zOiAnV3JpdGUgc2tpbGwgaW5zdHJ1Y3Rpb25zJyxcbiAgICAgIHVwbG9hZFNraWxsOiAnVXBsb2FkIGEgc2tpbGwnLFxuICAgICAgZ2VuZXJhdGVQbGFjZWhvbGRlcjogJ0kgd2FudCBhIFNraWxsIHRvIGNyZWF0ZSBteSBwcm9qZWN0cycsXG4gICAgICBnZW5lcmF0ZVdpdGhNYWlhOiAnQ3JlYXRlIHRoZSBTa2lsbCB3aXRoIE1haWEnLFxuICAgICAgZ2VuZXJhdGVOZWVkc05hbWU6ICdFbnRlciBhIG5hbWUgZmlyc3QgdG8gZGVzY3JpYmUgdGhlIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlU3VjY2VzczogJ1NraWxsIGdlbmVyYXRlZCB3aXRoIE1haWEnLFxuICAgICAgZ2VuZXJhdGVFcnJvcjogJ1RoZSBza2lsbCBjb3VsZCBub3QgYmUgZ2VuZXJhdGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogJ1NraWxsIGFjdGlvbnMgbWVudScsXG4gICAgICBlZGl0OiAnRWRpdCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIHNhdmU6ICdTYXZlJyxcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgY3JlYXRlVGl0bGU6ICdOZXcgc2tpbGwnLFxuICAgICAgZWRpdFRpdGxlOiAnRWRpdCBza2lsbCcsXG4gICAgICBuYW1lTGFiZWw6ICdOYW1lJyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ1NraWxsIG5hbWUnLFxuICAgICAgY29udGVudExhYmVsOiAnU2tpbGwnLFxuICAgICAgY29udGVudFBsYWNlaG9sZGVyOiAnV3JpdGUgdGhlIHNraWxsLi4uJyxcbiAgICAgIGVtcHR5U3RhdGVUaXRsZTogXCJZb3UgZG9uJ3QgaGF2ZSBhbnkgc2tpbGxzIHlldFwiLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQ2xpY2sgdGhlIGJ1dHRvbiBiZWxvdyB0byBzdGFydCBjcmVhdGluZyB5b3VyIHNraWxscy4nLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtOlxuICAgICAgICAnV2hlbiBzb21lb25lIHdpdGggcGVybWlzc2lvbiBzZXRzIHRoZW0gdXAsIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZW0gZnJvbSBoZXJlLicsXG4gICAgICBlbXB0eVN0YXRlQnV0dG9uOiAnQ3JlYXRlIHNraWxsJyxcbiAgICAgIGNyZWF0ZVN1Y2Nlc3M6ICdTa2lsbCBjcmVhdGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICBjcmVhdGVFcnJvcjogJ1RoZSBza2lsbCBjb3VsZCBub3QgYmUgY3JlYXRlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgdXBkYXRlU3VjY2VzczogJ1NraWxsIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgIHVwZGF0ZUVycm9yOiAnVGhlIHNraWxsIGNvdWxkIG5vdCBiZSB1cGRhdGVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgICBkZWxldGVTdWNjZXNzOiAnU2tpbGwgZGVsZXRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgZGVsZXRlRXJyb3I6ICdUaGUgc2tpbGwgY291bGQgbm90IGJlIGRlbGV0ZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDaGF0IGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICAgIHJlbmFtZWRDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDb252ZXJzYXRpb24gcmVuYW1lZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBlcnJvcjogJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSwgdHJ5IGFnYWluLicsXG4gICAgICB9LFxuICAgICAgbG9hZE1vcmVBZ2VudHM6IHtcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFwcHJvdmFsQm94OiB7XG4gICAgICB1bnRpdGxlZEFnZW50OiAnVW50aXRsZWQgYWdlbnQnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0NyZWF0aW9uIG9mIHRhc2snLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcmVhdGlvbiBvZiB0YXNrcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdFZGl0IGFnZW50JyxcbiAgICAgICAgZWRpdF9wcm9qZWN0OiAnRWRpdCBwcm9qZWN0JyxcbiAgICAgICAgZWRpdF90YXNrOiAnRWRpdCB0YXNrJyxcbiAgICAgICAgZWRpdF90YXNrc19iYXRjaDogJ0VkaXQgdGFza3MnLFxuICAgICAgICBkZWxldGVfdGFzazogJ0RlbGV0ZSB0YXNrJyxcbiAgICAgICAgZGVsZXRlX3Rhc2tzX2JhdGNoOiAnRGVsZXRlIHRhc2tzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBc3NpZ24gdXNlcicsXG4gICAgICAgIHRhc2tfdW5hc3NpZ246ICdVbmFzc2lnbiB1c2VyJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBc3NpZ24gbGFiZWwnLFxuICAgICAgICBjcmVhdGVfbGFiZWxzOiAnQ3JlYXRlIGxhYmVsJyxcbiAgICAgICAgdXBkYXRlX3Rhc2tfdHlwZTogJ1VwZGF0ZSB0YXNrIHR5cGUnLFxuICAgICAgICB1cGRhdGVfZXN0aW1hdGVkX2hvdXJzOiAnVXBkYXRlIGVzdGltYXRlZCBob3VycycsXG4gICAgICAgIHVwZGF0ZV9kZWxpdmVyYWJsZTogJ1VwZGF0ZSBkZWxpdmVyYWJsZScsXG4gICAgICAgIGNyZWF0ZV9ob3VyOiAnTG9nIGhvdXJzJyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdDogJ0NyZWF0ZSBjaGVja2xpc3QnLFxuICAgICAgICBjcmVhdGVfY2hlY2tsaXN0X2l0ZW06ICdBZGQgY2hlY2tsaXN0IGl0ZW0nLFxuICAgICAgICBjbG9uZV90YXNrOiAnQ2xvbmUgdGFzaycsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdHZXQgaG91cnMgYnkgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6ICdDaGFuZ2UgYWdlbnQgdmlzaWJpbGl0eScsXG4gICAgICAgIHNlbmRfdGFza19tZXNzYWdlOiAnU2VuZCB0YXNrIG1lc3NhZ2UnLFxuICAgICAgICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdEZWxldGUgY2hlY2tsaXN0IGl0ZW0nLFxuICAgICAgICByZW1vdmVfdGFza190eXBlOiAnUmVtb3ZlIHRhc2sgdHlwZScsXG4gICAgICAgIHJlbW92ZV90YXNrX2xhYmVsOiAnUmVtb3ZlIGxhYmVsJyxcbiAgICAgICAgY291bnRfZGVsaXZlcmFibGU6ICdVcGRhdGUgZGVsaXZlcmFibGUgY291bnQnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3JlYXRlIHJld29yaycsXG4gICAgICAgIHVwZGF0ZV9yZXdvcms6ICdVcGRhdGUgcmV3b3JrJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnRGVsZXRlIGFnZW50JyxcbiAgICAgICAgdW5rbm93bjogJ1Vua25vd24gYWN0aW9uJyxcbiAgICAgIH0sXG4gICAgICBzcGVjaWFsOiB7XG4gICAgICAgIGNyZWF0ZVJld29yazoge1xuICAgICAgICAgIHRpdGxlOiAnQ3JlYXRlIHJld29yaycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdBIHJld29yayByZXF1ZXN0IHdpbGwgYmUgY3JlYXRlZCBvbiB0aGUgdGFzayB3aXRoIHRoZSBpbmZvcm1hdGlvbiBiZWxvdy4nLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuOiB7XG4gICAgICAgICAgdGl0bGU6ICdVcGRhdGUgZGVsaXZlcmFibGUgcHJvZ3Jlc3MnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHByb2dyZXNzIG9mIGxpbmtlZCBzdWItZGVsaXZlcmFibGVzIGZvciB0aGlzIHRhc2sgd2lsbCBiZSB1cGRhdGVkLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIG5hbWU6ICdOYW1lJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHVjdGlvbicsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ01haW4gcHJvbXB0JyxcbiAgICAgICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kZWwnLFxuICAgICAgICBhcGlfa2V5OiAnQVBJIGtleScsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdDb25maXJtYXRpb24gcmVxdWlyZWQnLFxuICAgICAgZGVzY3JpcHRpb246ICdZb3UgbmVlZCB0byBhcHByb3ZlIHRoZSBmb2xsb3dpbmcgYWN0aW9uOicsXG4gICAgICBhcHByb3ZlOiAnQXBwcm92ZScsXG4gICAgICBkZW55OiAnRGVueScsXG4gICAgICBtYW51YWxBcHByb3ZhbFdhcm5pbmc6ICdNYWlhIGRldGVjdGVkIHRoYXQgdGhlIHJlcXVlc3Qgd2FzIG1hbnVhbGx5IGFwcHJvdmVkJyxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBhcHByb3ZlZDogJ1JlcXVlc3QgQXBwcm92ZWQnLFxuICAgICAgICBkZW5pZWQ6ICdSZXF1ZXN0IERlbmllZCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hpcExsbToge1xuICAgICAgdG9vbHRpcDogJ01vZGVsOiB7e21vZGVsfX0nLFxuICAgIH0sXG4gICAgY2xpZW50U2VsZWN0b3I6IHtcbiAgICAgIHByb2plY3Q6ICdwcm9qZWN0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamVjdHMnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5hYm1BZ2VudF06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBhZ2VudHM6ICdBZ2VudHMnLFxuICAgIGxheW91dE1lbnVUb29sdGlwOiAnQ2hhdCBsYXlvdXQnLFxuICAgIGxheW91dFNpZGViYXI6ICdTaWRlIGNoYXQnLFxuICAgIGxheW91dEZ1bGxzY3JlZW46ICdGdWxsc2NyZWVuIGNoYXQnLFxuICAgIGxheW91dEZsb2F0aW5nOiAnRmxvYXRpbmcgY2hhdCcsXG4gICAgYmFjazogJ0JhY2snLFxuICAgIGFkZEFnZW50OiAnQWRkIG5ldyBhZ2VudCcsXG4gICAgbGVnZW5kRGVsZXRlZEFnZW50OiAnVGhpcyBhZ2VudCB3YXMgZGVsZXRlZCBvbicsXG4gICAgbGVnZW5kUHJvamVjdERlbGV0ZWQ6ICdUaGUgcHJvamVjdCB7e25hbWV9fSBoYXMgYmVlbiBkZWxldGVkLiBJdCBpcyBub3QgcG9zc2libGUgdG8gY29udGludWUgdGhlIGNvbnZlcnNhdGlvbicsXG4gICAgbGVnZW5kTm9BY2Nlc3M6ICdZb3Ugbm8gbG9uZ2VyIGhhdmUgYWNjZXNzIHRvIGludGVyYWN0IHdpdGggdGhlIGFnZW50IHt7bmFtZX19JyxcbiAgICBsZWdlbmROb1Blcm1pc3Npb25zOiAnWW91IG5vIGxvbmdlciBoYXZlIHBlcm1pc3Npb24gdG8gdmlldyBvciBpbnRlcmFjdCB3aXRoIHRoZSBhZ2VudCB7e25hbWV9fScsXG4gICAgbGVnZW5kTGVnYWN5Q29udGV4dFNlc3Npb246XG4gICAgICAnVGhpcyBjb252ZXJzYXRpb24gYmVsb25ncyB0byBhIHByZXZpb3VzIGNvbnRleHQuIFlvdSBjYW4gY29udGludWUgd2l0aCB7e25hbWV9fSBpbiBhIG5ldyBjaGF0LicsXG4gICAgY29udGludWVJbk5ld0NoYXQ6ICdDb250aW51ZSBpbiBhIG5ldyBjaGF0JyxcbiAgICBsZWdlbmRNb2RlbERlcHJlY2F0ZWQ6XG4gICAgICAnVGhlIG1vZGVsIHNlbGVjdGVkIGZvciB0aGlzIGFnZW50IGlzIG5vIGxvbmdlciBhdmFpbGFibGUuIFN3aXRjaCB0byBhbm90aGVyIG1vZGVsIHRvIGNvbnRpbnVlIHVzaW5nIGl0LicsXG4gICAgbGVnZW5kUHJvdmlkZXJTdGF0dXM6XG4gICAgICAnVGhlIG1vZGVsIHVzZWQgYnkgdGhpcyBhZ2VudCBpcyBleHBlcmllbmNpbmcgdGVtcG9yYXJ5IGlzc3Vlcy4gWW91IGNhbiB3YWl0IGZvciBpdCB0byByZWNvdmVyIG9yIHN3aXRjaCB0byBhIGRpZmZlcmVudCBtb2RlbC4nLFxuICAgIGNoYW5nZU1vZGVsOiAnQ2hhbmdlIG1vZGVsJyxcbiAgICBuZXdBZ2VudDogJ05ldyBhZ2VudCcsXG4gICAgY3JlYXRlQWdlbnQ6ICdDcmVhdGUgQWdlbnQnLFxuICAgIGVkaXRBZ2VudDogJ0VkaXQgYWdlbnQnLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICBkZWxldGVBZ2VudDogJ0RlbGV0ZSBhZ2VudCcsXG4gICAgY29udGludWU6ICdDb250aW51ZScsXG4gICAgZWRpdDogJ0VkaXQnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgZmVlZGJhY2s6ICdTZW5kIEZlZWRiYWNrJyxcbiAgICBzZW5kRmVlZGJhY2s6ICdTZW5kIGZlZWRiYWNrJyxcbiAgICBzYXZlQ2hhbmdlczogJ1NhdmUgY2hhbmdlcycsXG4gICAgY3JlYXRlQWdlbnRMYWJlbEJ1dHRvbjogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyZWF0ZSBhZ2VudCcsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnQWdlbnQgbWFya2V0cGxhY2UnLFxuICAgIGNvbmZpcm1BZ2VudENyZWF0ZWQ6ICdUaGUgYWdlbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQnLFxuICAgIGNvbmZpcm1BZ2VudFVwZGF0ZWQ6ICdUaGUgYWdlbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQnLFxuICAgIGNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50OiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNsb3NlPyBDaGFuZ2VzIHdpbGwgYmUgbG9zdC4nLFxuICAgIGNvbmZpcm1DbG9zZUVkaXRBZ2VudDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjbG9zZT8gQ2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcbiAgICBjb25maXJtUmVsb2FkQnJvd3NlcjogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZWxvYWQgdGhlIHBhZ2U/IENoYW5nZXMgd2lsbCBiZSBsb3N0LicsXG4gICAgY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yOiAnVGhlIGFnZW50IHdhcyBlZGl0ZWQgc3VjY2Vzc2Z1bGx5LCBidXQgc29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkLicsXG4gICAgY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3I6ICdUaGUgYWdlbnQgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LCBidXQgc29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkLicsXG4gICAgY29uZmlybUFnZW50RGVsZXRlZDogJ1RoZSBhZ2VudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZCcsXG4gICAgZXJyb3JBY2Nlc3NEZW5pZWQ6IFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhpcyBhZ2VudC4gQ29udGFjdCBzdXBwb3J0LlwiLFxuICAgIGVycm9yQWdlbnRDcmVhdGVkOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICBhdHRhY2htZW50Q2FyZDoge1xuICAgICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gICAgZ2VuZXJhbFNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnR2VuZXJhbCcsXG4gICAgICBnZW5lcmFsU2V0dGluZ3M6ICdHZW5lcmFsIHNldHRpbmdzJyxcbiAgICAgIHJlcXVpcmVkRmllbGRzTGFiZWw6ICcqcmVxdWlyZWQnLFxuICAgICAgaW5mb0xhYmVsOiAnQWRkIGFsbCB0aGUgaW5mb3JtYXRpb24gdG8gY3VzdG9taXplIHlvdXIgYWdlbnTigJlzIGJlaGF2aW9yLicsXG4gICAgICBvcHRpb25hbExhYmVsOiAnT3B0aW9uYWwnLFxuICAgICAgYmFzaWNTZXR0aW5nczogJ0Jhc2ljIHNldHRpbmdzJyxcbiAgICAgIHNlbGVjdEVtb2ppOiAnU2VsZWN0IGVtb2ppJyxcbiAgICAgIG5hbWU6ICdXaGF0IGlzIHlvdXIgYWdlbnTigJlzIG5hbWU/JyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ0dpdmUgeW91ciBhZ2VudCBhIG5hbWUnLFxuICAgICAgYmVoYXZpb3JTZXR0aW5nczogJ0JlaGF2aW9yIHNldHRpbmdzJyxcbiAgICAgIGluaXRpYWxQcm9tcHQ6ICdXaGF0IGFyZSB0aGUgaW5zdHJ1Y3Rpb25zPycsXG4gICAgICBpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXI6XG4gICAgICAgICdFeGFtcGxlOiBZb3UgYXJlIGEgc29jaWFsIG1lZGlhIGNvcHl3cml0ZXIgd2hvIHdyaXRlcyBhbmQgYWRhcHRzIG1lc3NhZ2VzIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBpbiB0b25lLCBwZXJzb25hbGl0eSwgYW5kIGJyYW5kIHZhbHVlcy4nLFxuICAgICAgbW9kZWxBaUxhYmVsOiAnQUkgbW9kZWwnLFxuICAgICAgbm9Nb2RlbHNBdmFpbGFibGU6ICdObyBtb2RlbHMgYXZhaWxhYmxlJyxcbiAgICAgIGlucHV0UGxhY2Vob2xkZXJUaXRsZTogJ1doYXQgd2lsbCB0aGUgdXNlciBzZWUgaW4gdGhlIGNoYXQgZmllbGQgYmVmb3JlIHR5cGluZz8nLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ0FzayBtZSBhbnl0aGluZyB5b3UgbmVlZOKApicsXG4gICAgICBpbnRyb2R1Y3Rpb246ICdIb3cgd2lsbCB5b3VyIGFnZW50IGludHJvZHVjZSBpdHNlbGY/JyxcbiAgICAgIGludHJvZHVjdGlvblBsYWNlaG9sZGVyOlxuICAgICAgICAnRXhhbXBsZTogSGkhIPCfkYsgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSBjcmVhdGUsIGFkYXB0LCBhbmQgcmV2aWV3IGNvcHkgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMsIGVuc3VyaW5nIHlvdXIgYnJhbmTigJlzIHZvaWNlLCB0b25lLCBhbmQgcGVyc29uYWxpdHkgc3RheSBjb25zaXN0ZW50LiBZb3UgY2FuIGFzayBtZSB0byBzdWdnZXN0IGNhbXBhaWduIGlkZWFzLCBhZGFwdCBhIG1lc3NhZ2UgZm9yIGFub3RoZXIgY2hhbm5lbCwgb3IgcmV2aWV3IHRoZSBjb2hlcmVuY2Ugb2YgeW91ciBjb250ZW50LicsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4Q2FyYWN0ZXJOYW1lOiAnWW91IGhhdmUgcmVhY2hlZCB0aGUgMTUwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhDYXJhY3RlckluaXRpYWxQcm9tcHQ6ICdZb3XigJl2ZSByZWFjaGVkIHRoZSA1MDAwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhJbnB1dFBsYWNlaG9sZGVyOiAnWW914oCZdmUgcmVhY2hlZCB0aGUgMTAwLWNoYXJhY3RlciBsaW1pdC4nLFxuICAgICAgICBtYXhDYXJhY3RlckludHJvZHVjdGlvbjogJ1lvdeKAmXZlIHJlYWNoZWQgdGhlIDQwMC1jaGFyYWN0ZXIgbGltaXQuJyxcbiAgICAgIH0sXG4gICAgICBob3dUb1dyaXRlUHJvbXB0OiAnSG93IHRvIHdyaXRlIGEgcHJvbXB0JyxcbiAgICAgIHdoYXRJc01vZGVsQWlUaXRsZTogJ1doaWNoIEFJIG1vZGVsIHdpbGwgeW91IHVzZT8nLFxuICAgICAgd2hhdElzTW9kZWxBaTogJ1doYXQgaXMgYSBtb2RlbCBvZiBBST8nLFxuICAgICAgY3JlYXRlZEJ5OiAnQnknLFxuICAgICAgY3JlYXRlZEJ5VG9vbHRpcDogJ0FnZW50IGNyZWF0b3IgdXNlcicsXG4gICAgICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzZXIgZGVsZXRlZC4gVGhlaXIgbmFtZSBpcyBrZXB0IGZvciByZWZlcmVuY2UuJyxcbiAgICB9LFxuICAgIGtub3dsZWRnZVNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnS25vd2xlZGdlJyxcbiAgICAgIGtub3dsZWRnZVRhYjogJ0tub3dsZWRnZSBiYXNlJyxcbiAgICAgIGluZm9MYWJlbDogJ1VwbG9hZCB0aGUgZmlsZXMgeW91ciBhZ2VudCB3aWxsIHVzZSBhcyBhIHJlZmVyZW5jZSBmb3IgaXRzIHJlc3BvbnNlcy4nLFxuICAgICAgc2VsZWN0RmlsZVRpdGxlOiAnU2VsZWN0IGZpbGVzJyxcbiAgICAgIGF0dGFjaEZpbGVzOiAnQXR0YWNoIGZpbGVzJyxcbiAgICAgIGRyb3Bab25lVGV4dDoge1xuICAgICAgICAxOiAnQ2xpY2sgaGVyZSB0byB1cGxvYWQnLFxuICAgICAgICAyOiAnb3IgZHJhZyBmaWxlcycsXG4gICAgICB9LFxuICAgICAgaW5mb0ZpbGVUeXBlczpcbiAgICAgICAgJy5tZCwgLnBkZiwgLmRvYywgLmRvY3gsIC5wcHQsIC5wcHR4LCAudHh0LCAuY3N2LCAucG5nLCAuanBnLCAuanBlZywgLnhscywgLnhsc3ggIChtYXguIHRvdGFsIDVNQiknLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4RmlsZXNUaXRsZTogJ1RvdGFsIHNpemUgbGltaXQgZXhjZWVkZWQuJyxcbiAgICAgICAgbWF4RmlsZXNEZXNjcmlwdGlvbjogJ1lvdSBjYW4gYXR0YWNoIGZpbGVzIHVwIHRvIGEgdG90YWwgb2YgNSBNQi4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgICAgbWF4U2l6ZVRpdGxlOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0JyxcbiAgICAgICAgbWF4U2l6ZURlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgMTogJ1RoZSBtYXhpbXVtIGxpbWl0IG9mIDUgTUIgd2FzIHJlYWNoZWQuJyxcbiAgICAgICAgICAyOiAnVGhlc2UgZmlsZXMgd2VyZSBub3QgdXBsb2FkZWQgYmVjYXVzZSB0aGV5IGV4Y2VlZCB0aGUgYXZhaWxhYmxlIHNwYWNlOicsXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWRFeHRlbnNpb25EZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdPbmx5IGZpbGVzIHdpdGggdGhlIGZvbGxvd2luZyBleHRlbnNpb25zIGFyZSBhY2NlcHRlZDogLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCcsXG4gICAgICAgICAgMjogJ1RoZXNlIGZpbGVzIHdlcmUgbm90IHVwbG9hZGVkIGJlY2F1c2UgdGhlaXIgZXh0ZW5zaW9uIGlzIG5vdCBhbGxvd2VkOicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbW9yZUluZm86ICdTZWUgaG93IGl0IHdvcmtzIGhlcmUnLFxuICAgIH0sXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnUGVybWlzc2lvbnMnLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWdlbnQgdmlzaWJpbGl0eSBhbmQgcGVybWlzc2lvbnMnLFxuICAgICAgc3VidGl0bGVTZWN0aW9uOiAnRGVmaW5lIHdobyBjYW4gdXNlIHRoaXMgYWdlbnQgYW5kIHdoZXRoZXIgaXQgY2FuIGFjY2VzcyBDT1IgZGF0YS4nLFxuICAgICAgY29yUGVybWlzc2lvbnNUaXRsZTogJ0NPUiBkYXRhIGFjY2VzcyBwZXJtaXNzaW9ucycsXG4gICAgICBjb3JQZXJtaXNzaW9uc1N1YnRpdGxlOiAnV2hhdCBjYW4gdGhpcyBhZ2VudCBhY2Nlc3M/JyxcbiAgICAgIHRhc2tBY2Nlc3NUaXRsZTogJ1Rhc2sgYWNjZXNzJyxcbiAgICAgIHRhc2tBY2Nlc3NEZXNjcmlwdGlvbjpcbiAgICAgICAgJ1RoZSBhZ2VudCB3aWxsIGJlIGFibGUgdG8gcmVhZCwgY3JlYXRlLCB1cGRhdGUsIGFuZCBkZWxldGUgdGFza3MgYWNjb3JkaW5nIHRvIHRoZSB1c2Vy4oCZcyBwZXJtaXNzaW9ucy4nLFxuICAgICAgdmlzaWJpbGl0eVRpdGxlOiAnQWdlbnQgdmlzaWJpbGl0eScsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdXaG8gY2FuIHVzZSB0aGlzIGFnZW50PycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdFbnRpcmUgY29tcGFueScsXG4gICAgICBhbGxDb21wYW55RGVzY3JpcHRpb246ICdBbGwgdXNlcnMgb2YgeW91ciBvcmdhbml6YXRpb24gd2lsbCBiZSBhYmxlIHRvIHNlZSBhbmQgdXNlIHRoaXMgYWdlbnQuJyxcbiAgICAgIGNsaWVudFRpdGxlOiAnRm9yIHNwZWNpZmljIGNsaWVudHMnLFxuICAgICAgY2xpZW50RGVzY3JpcHRpb246XG4gICAgICAgICdBc3NvY2lhdGUgdGhpcyBhZ2VudCB3aXRoIG9uZSBvciBtb3JlIGNsaWVudHMuIEFsbCB1c2VycyB3aWxsIGJlIGFibGUgdG8gc2VlIHdoaWNoIGNsaWVudHMgYXJlIGxpbmtlZC4nLFxuICAgICAgb3duVGl0bGU6ICdPbmx5IG1lJyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnVGhpcyBhZ2VudCB3aWxsIGJlIHByaXZhdGUgYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZSB0byBvdGhlciB1c2Vycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdPb3BzISBXZSBoYWQgdHJvdWJsZSBsb2FkaW5nIHRoZSBjbGllbnRzLiBDb3VsZCB5b3UgdHJ5IGFnYWluIGluIGEgbW9tZW50PycsXG4gICAgICBzZWFyY2hFbXB0eTogJ09vcHMhIFdlIGNvdWxkbuKAmXQgZmluZCBjbGllbnRzIHdpdGggdGhhdCBuYW1lLiBUcnkgYW5vdGhlciBzZWFyY2guJyxcbiAgICAgIHNlYXJjaEluaXRpYWw6ICdTdGFydCB0eXBpbmcgYSBjbGllbnTigJlzIG5hbWUgdG8gbGluayBpdCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgICAgY2xpZW50c0Vycm9yOiAnQ2hlY2sgdGhlIGFzc29jaWF0ZWQgY2xpZW50cycsXG4gICAgfSxcbiAgICBwcm9jZXNzaW5nS25vd2xlZGdlOiB7XG4gICAgICBkZXNjcmlwdGlvbkNyZWF0ZTpcbiAgICAgICAgJ1dlIGFyZSBjcmVhdGluZyB0aGUgQWdlbnQgYW5kIGl0cyBrbm93bGVkZ2UgYmFzZS4gVGhpcyBtYXkgdGFrZSBhIGZldyBtb21lbnRzLiBQbGVhc2UgZG8gbm90IGNsb3NlIHRoaXMgd2luZG93IHVudGlsIHRoZSBwcm9jZXNzIGhhcyBiZWVuIGNvbXBsZXRlZC4nLFxuICAgICAgZGVzY3JpcHRpb25VcGRhdGU6XG4gICAgICAgICdXZSBhcmUgdXBkYXRpbmcgdGhlIEFnZW50IGFuZCBpdHMga25vd2xlZGdlIGJhc2UuIFRoaXMgbWF5IHRha2UgYSBmZXcgbW9tZW50cy4gUGxlYXNlIGRvIG5vdCBjbG9zZSB0aGlzIHdpbmRvdyB1bnRpbCB0aGUgcHJvY2VzcyBoYXMgYmVlbiBjb21wbGV0ZWQuJyxcbiAgICAgIGZpbGVSb3c6ICdGaWxlJyxcbiAgICAgIHN0YXR1c1JvdzogJ1N0YXR1cycsXG4gICAgICBwZW5kaW5nOiAnUGVuZGluZycsXG4gICAgICBwcm9jZXNzaW5nOiAnUHJvY2Vzc2luZycsXG4gICAgICBmYWlsZWQ6ICdGYWlsZWQnLFxuICAgICAgZG9uZTogJ0RvbmUnLFxuICAgICAgbG9hZGluZ0ZpbGVzOiAnTG9hZGluZyBmaWxlcy4uLicsXG4gICAgICBlcnJvcjoge30sXG4gICAgfSxcbiAgICBkZWxldGVBZ2VudE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGFnZW50PycsXG4gICAgICBmaXJzdFBhcnQ6ICdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSAnLFxuICAgICAgc2Vjb25kUGFydDogJ1RoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBoZWxsbzoge1xuICAgICAgICB0aXRsZTogJ0nigJltIE1BSUEsIHlvdXIgcHJvamVjdCBzcGVjaWFsaXN0LicsXG4gICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgICdUbyBnaXZlIHlvdSBhY2N1cmF0ZSBhbnN3ZXJzLCBJIG5lZWQgdG8ga25vdyB3aGljaCBwcm9qZWN0IHdl4oCZcmUgdGFsa2luZyBhYm91dC4gV2hpY2ggb25lIGRvIHlvdSBjaG9vc2U/JyxcbiAgICAgIH0sXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTZWxlY3QgYSBwcm9qZWN0JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoIGZvciBhIHByb2plY3QgYnkgbmFtZScsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnRzJyxcbiAgICAgIHNlYXJjaGluZ1Byb2plY3RzOiAnU2VhcmNoaW5nIHlvdXIgcHJvamVjdHMuLi4nLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnT29wcyEgV2UgaGFkIGEgcHJvYmxlbSBsb2FkaW5nIHRoZSBwcm9qZWN0cy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLicsXG4gICAgICBlbXB0eVJlY2VudFByb2plY3RzOiAnWW91IGRvbuKAmXQgaGF2ZSByZWNlbnQgcHJvamVjdHMuIFR5cGUgYSBwcm9qZWN0IG5hbWUgaW4gdGhlIHNlYXJjaCB0byBmaW5kIGl0LicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgV2UgY291bGRu4oCZdCBmaW5kIGFueSBwcm9qZWN0cyB3aXRoIHRoYXQgbmFtZS4gVHJ5IGFub3RoZXIgc2VhcmNoLicsXG4gICAgICB3aXRob3V0Q2xpZW50OiAnTm8gY2xpZW50JyxcbiAgICAgIHdpdGhvdXRUaXRsZTogJ05vIHRpdGxlJyxcbiAgICB9LFxuICB9LFxuICBbU0VDVElPTlMuY2xpZW50U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgY2xpZW50U2VsZWN0b3I6IHtcbiAgICAgIHRpdGxlOiAnV2hpY2ggY2xpZW50IHdvdWxkIHlvdSBsaWtlIGhlbHAgd2l0aD8nLFxuICAgICAgaGVsbG86IHtcbiAgICAgICAgdGl0bGU6IFwiSSdtIE1BSUEsIHlvdXIgY2xpZW50IHNwZWNpYWxpc3QuXCIsXG4gICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgIFwiVG8gZ2l2ZSB5b3UgYWNjdXJhdGUgYW5zd2VycywgSSBuZWVkIHRvIGtub3cgd2hpY2ggY2xpZW50IHdlJ3JlIHRhbGtpbmcgYWJvdXQuIFdoaWNoIG9uZSBkbyB5b3UgY2hvb3NlP1wiLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWN0IGEgY2xpZW50IHNvIE1BSUEgY2FuIHJlc3BvbmQgaW4gY29udGV4dC4nLFxuICAgICAgbGFiZWxDbGllbnQ6ICdTZWxlY3QgYSBjbGllbnQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggY2xpZW50IGJ5IG5hbWUnLFxuICAgICAgY2hhbmdlQ2xpZW50OiAnQ2hhbmdlIGNsaWVudCcsXG4gICAgICByZWNlbnRDbGllbnRzOiAnUmVjZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdXZSBoYWQgYSBwcm9ibGVtIGxvYWRpbmcgdGhlIGNsaWVudHMuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiBcIllvdSBkb24ndCBoYXZlIHJlY2VudCBjbGllbnRzLiBUeXBlIGEgY2xpZW50IG5hbWUgaW4gdGhlIHNlYXJjaCB0byBmaW5kIGl0LlwiLFxuICAgICAgZW1wdHlTdGF0ZTogXCJPb3BzISBXZSBjb3VsZG4ndCBmaW5kIGNsaWVudHMgd2l0aCB0aGF0IG5hbWUuIFRyeSBhbm90aGVyIHNlYXJjaC5cIixcbiAgICAgIHByb2plY3Q6ICdwcm9qZWN0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamVjdHMnLFxuICAgIH0sXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx3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