@projectcor/maia-components 2.29.0 → 2.30.1-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +656 -0
- package/lib/App.js +55 -0
- package/lib/components/atoms/ActionableButton.js +60 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
- package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
- package/lib/components/atoms/ApprovalBox/index.js +2 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
- package/lib/components/atoms/AttachmentCard/index.js +4 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
- package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
- package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
- package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
- package/lib/components/atoms/Backdrop/index.js +2 -0
- package/lib/components/atoms/CardItem.js +7 -0
- package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
- package/lib/components/atoms/CardMenu/index.js +2 -0
- package/lib/components/atoms/CardMenu/styles.js +21 -0
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
- package/lib/components/atoms/ChatClientSelector/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
- package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
- package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
- package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
- package/lib/components/atoms/Checkbox/index.js +2 -0
- package/lib/components/atoms/Checkbox/styles.js +39 -0
- package/lib/components/atoms/Chip/Chip.js +150 -0
- package/lib/components/atoms/Chip/index.js +2 -0
- package/lib/components/atoms/Chip/styles.js +43 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
- package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
- package/lib/components/atoms/ChipLlm/index.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
- package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
- package/lib/components/atoms/ChipStatus/index.js +2 -0
- package/lib/components/atoms/ClearButton.js +6 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
- package/lib/components/atoms/ClientSelector/index.js +2 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +445 -0
- package/lib/components/atoms/ContextMentionChip/index.js +4 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +533 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
- package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +282 -0
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +148 -0
- package/lib/components/atoms/ContextMentionItem/index.js +2 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +290 -0
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
- package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
- package/lib/components/atoms/CopyToClipboard.js +70 -0
- package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
- package/lib/components/atoms/EditableLabel/index.js +2 -0
- package/lib/components/atoms/EditableLabel/styles.js +7 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
- package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
- package/lib/components/atoms/EmptySearchClients/index.js +2 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
- package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
- package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
- package/lib/components/atoms/EntitySelector/index.js +2 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
- package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
- package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
- package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
- package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
- package/lib/components/atoms/Expand/Expand.js +32 -0
- package/lib/components/atoms/Expand/index.js +2 -0
- package/lib/components/atoms/Fade/Fade.js +56 -0
- package/lib/components/atoms/Fade/index.js +2 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
- package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
- package/lib/components/atoms/FeedbackButton/index.js +2 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
- package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
- package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
- package/lib/components/atoms/GoBackButton.js +24 -0
- package/lib/components/atoms/HelpButton.js +44 -0
- package/lib/components/atoms/IconButton.js +56 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
- package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
- package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
- package/lib/components/atoms/Input/CustomInput.js +91 -0
- package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
- package/lib/components/atoms/Input/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
- package/lib/components/atoms/ListMenuOption/index.js +2 -0
- package/lib/components/atoms/ListMenuOption/styles.js +9 -0
- package/lib/components/atoms/Loader.js +41 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
- package/lib/components/atoms/LoadingFaqs/index.js +2 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
- package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
- package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
- package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
- package/lib/components/atoms/LoadingText/index.js +2 -0
- package/lib/components/atoms/LoadingText/styles.js +7 -0
- package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
- package/lib/components/atoms/MAIAButton/index.js +2 -0
- package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
- package/lib/components/atoms/MAIAError/index.js +2 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +1233 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
- package/lib/components/atoms/MAIAInput/index.js +2 -0
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
- package/lib/components/atoms/MAIAInput/styles.js +186 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
- package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
- package/lib/components/atoms/MAIAMessage/index.js +2 -0
- package/lib/components/atoms/MAIAMessage/styles.js +7 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
- package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
- package/lib/components/atoms/MaiaWrapper/index.js +3 -0
- package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
- package/lib/components/atoms/ModalClientAccess/index.js +2 -0
- package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
- package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
- package/lib/components/atoms/ModalInfo/index.js +3 -0
- package/lib/components/atoms/ModalInfo/styles.js +7 -0
- package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
- package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
- package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
- package/lib/components/atoms/ModalProject/index.js +2 -0
- package/lib/components/atoms/NextPageLoader.js +33 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
- package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
- package/lib/components/atoms/OptionAccessibility/index.js +2 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
- package/lib/components/atoms/OptionCorPermission/index.js +2 -0
- package/lib/components/atoms/PrimaryButton.js +31 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
- package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
- package/lib/components/atoms/ProjectSelector/index.js +2 -0
- package/lib/components/atoms/SecondaryButton.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
- package/lib/components/atoms/Skeleton/index.js +2 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
- package/lib/components/atoms/SkillsDropdown/index.js +2 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
- package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
- package/lib/components/atoms/SlashCommandChip/index.js +4 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
- package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
- package/lib/components/atoms/Switch/Switch.js +27 -0
- package/lib/components/atoms/Switch/Switch.styles.js +22 -0
- package/lib/components/atoms/Switch/index.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
- package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
- package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
- package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
- package/lib/components/atoms/TextArea/TextArea.js +172 -0
- package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
- package/lib/components/atoms/TextArea/index.js +2 -0
- package/lib/components/atoms/ThirdButton.js +19 -0
- package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
- package/lib/components/atoms/VideoModal/index.js +2 -0
- package/lib/components/atoms/WithAppCfg.js +26 -0
- package/lib/components/atoms/WithFeatureValidation.js +23 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
- package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
- package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
- package/lib/components/atoms/icons/AIIcon.js +23 -0
- package/lib/components/atoms/icons/AacFile.js +39 -0
- package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
- package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
- package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
- package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
- package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
- package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
- package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
- package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
- package/lib/components/atoms/icons/Brain.js +77 -0
- package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
- package/lib/components/atoms/icons/CorLogo.js +76 -0
- package/lib/components/atoms/icons/CsvFile.js +41 -0
- package/lib/components/atoms/icons/DocFile.js +41 -0
- package/lib/components/atoms/icons/DocxFile.js +41 -0
- package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
- package/lib/components/atoms/icons/EmptyHistory.js +46 -0
- package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
- package/lib/components/atoms/icons/EmptyState.js +84 -0
- package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
- package/lib/components/atoms/icons/ErrorIcon.js +14 -0
- package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
- package/lib/components/atoms/icons/ErrorState.js +51 -0
- package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
- package/lib/components/atoms/icons/FaqsIcon.js +51 -0
- package/lib/components/atoms/icons/FlacIcon.js +39 -0
- package/lib/components/atoms/icons/FolderIcon.js +29 -0
- package/lib/components/atoms/icons/HomeIcon.js +30 -0
- package/lib/components/atoms/icons/ImageFile.js +46 -0
- package/lib/components/atoms/icons/M4aFile.js +39 -0
- package/lib/components/atoms/icons/MAIAIcon.js +20 -0
- package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
- package/lib/components/atoms/icons/MDFile.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
- package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
- package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
- package/lib/components/atoms/icons/Mp3File.js +39 -0
- package/lib/components/atoms/icons/Mp4File.js +39 -0
- package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
- package/lib/components/atoms/icons/NewChat.js +29 -0
- package/lib/components/atoms/icons/NotionIcon.js +36 -0
- package/lib/components/atoms/icons/OgaFile.js +39 -0
- package/lib/components/atoms/icons/OggFile.js +39 -0
- package/lib/components/atoms/icons/PdfFile.js +39 -0
- package/lib/components/atoms/icons/PlusIcon.js +29 -0
- package/lib/components/atoms/icons/PptFile.js +47 -0
- package/lib/components/atoms/icons/PptxFile.js +49 -0
- package/lib/components/atoms/icons/RetryIcon.js +34 -0
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
- package/lib/components/atoms/icons/SkillIcon.js +30 -0
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +24 -0
- package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
- package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
- package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
- package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
- package/lib/components/atoms/icons/TextFile.js +41 -0
- package/lib/components/atoms/icons/WavFile.js +39 -0
- package/lib/components/atoms/icons/WebmFile.js +50 -0
- package/lib/components/atoms/icons/XlsFile.js +42 -0
- package/lib/components/atoms/icons/XlsxFile.js +42 -0
- package/lib/components/atoms/icons/index.js +54 -0
- package/lib/components/atoms/index.js +42 -0
- package/lib/components/index.js +11 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +236 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
- package/lib/components/molecules/AbmSection/index.js +4 -0
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
- package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +119 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
- package/lib/components/molecules/ChatAIContent/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
- package/lib/components/molecules/ChatAIHistory/index.js +2 -0
- package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
- package/lib/components/molecules/ChatAIHome/index.js +2 -0
- package/lib/components/molecules/ChatAIHome/styles.js +335 -0
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
- package/lib/components/molecules/ChatAIMessages/README.md +101 -0
- package/lib/components/molecules/ChatAIMessages/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
- package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1254 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +453 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/constants.js +40 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
- package/lib/components/molecules/ChatAIModal/index.js +2 -0
- package/lib/components/molecules/ChatAIModal/layout.js +74 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +430 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +169 -0
- package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
- package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
- package/lib/components/molecules/ChatFooter/index.js +2 -0
- package/lib/components/molecules/ChatFooter/styles.js +23 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +60 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
- package/lib/components/molecules/ContextMentionInput/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
- package/lib/components/molecules/MessageFeedback/index.js +2 -0
- package/lib/components/molecules/MessageFeedback/styles.js +14 -0
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
- package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
- package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
- package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
- package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
- package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +716 -0
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
- package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
- package/lib/components/molecules/Sidebar/index.js +2 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1449 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
- package/lib/components/organisms/AbmAgentModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +182 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
- package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +585 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +154 -0
- package/lib/components/organisms/AbmSkillModal/index.js +2 -0
- package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
- package/lib/components/organisms/ChatAI/index.js +2 -0
- package/lib/components/organisms/ChatAI/styles.js +7 -0
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
- package/lib/components/organisms/ClientAIButton/index.js +2 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
- package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
- package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
- package/lib/components/organisms/EditQuestionModal/index.js +2 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
- package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
- package/lib/components/organisms/ProjectAIButton/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
- package/lib/components/organisms/ProjectSummary/index.js +2 -0
- package/lib/components/organisms/ProjectSummary/styles.js +7 -0
- package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
- package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
- package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
- package/lib/components/organisms/SnackBar/index.js +2 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
- package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
- package/lib/components/organisms/SourcesInformation/index.js +2 -0
- package/lib/constants/config.js +10 -0
- package/lib/constants/formatExtensions.js +55 -0
- package/lib/constants/gqlClient.js +4 -0
- package/lib/constants/maiaHourAgentAccess.js +15 -0
- package/lib/constants/maiaTaskPanelAccess.js +24 -0
- package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
- package/lib/constants/maiaTaskPanelZIndex.js +19 -0
- package/lib/constants/permissions/config.js +72 -0
- package/lib/constants/permissions/index.js +3 -0
- package/lib/constants/permissions/types.js +2 -0
- package/lib/constants/permissions/utils.js +18 -0
- package/lib/constants/plannerSyncEvents.js +15 -0
- package/lib/constants/taskLinkIcon.js +15 -0
- package/lib/constants/taskUrls.js +11 -0
- package/lib/context/cor-user.js +31 -0
- package/lib/context/global-context.js +39 -0
- package/lib/dev/DevChatAI.js +101 -0
- package/lib/dev/DevContextMentionInput.js +67 -0
- package/lib/dev/ProjectSummary.js +9 -0
- package/lib/dev/Providers.js +27 -0
- package/lib/exports.js +2 -0
- package/lib/hooks/README.md +192 -0
- package/lib/hooks/index.js +30 -0
- package/lib/hooks/useAccessClient/index.js +2 -0
- package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
- package/lib/hooks/useAgentModel/index.js +2 -0
- package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +175 -0
- package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.js +176 -0
- package/lib/hooks/useAgentSuggestions.js +60 -0
- package/lib/hooks/useCaretPosition.js +65 -0
- package/lib/hooks/useChatManager/index.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
- package/lib/hooks/useChatManager/useChatManager.js +1782 -0
- package/lib/hooks/useChatMessages/index.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
- package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
- package/lib/hooks/useChats/index.js +2 -0
- package/lib/hooks/useChats/useChats.interfaces.js +2 -0
- package/lib/hooks/useChats/useChats.js +187 -0
- package/lib/hooks/useClientSearch.js +163 -0
- package/lib/hooks/useContextMentions.js +500 -0
- package/lib/hooks/useContextPinPopover.js +228 -0
- package/lib/hooks/useDebounce.js +18 -0
- package/lib/hooks/useEntitySearch.js +1053 -0
- package/lib/hooks/useEvent.js +94 -0
- package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
- package/lib/hooks/useFrequentlyUsedActions.js +94 -0
- package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
- package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
- package/lib/hooks/useKnowledge/index.js +4 -0
- package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
- package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
- package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
- package/lib/hooks/useMentionAllowedTypes.js +120 -0
- package/lib/hooks/useMentionPopover.js +342 -0
- package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
- package/lib/hooks/useModal/index.js +2 -0
- package/lib/hooks/useModal/useModal.interfaces.js +2 -0
- package/lib/hooks/useModal/useModal.js +47 -0
- package/lib/hooks/useOnboardingNavigation.js +20 -0
- package/lib/hooks/useOrchestratorStream/index.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
- package/lib/hooks/useProjectSearch.js +183 -0
- package/lib/hooks/useProjectSummary.js +101 -0
- package/lib/hooks/useProjectSummaryConfig.js +211 -0
- package/lib/hooks/useProjects.js +46 -0
- package/lib/hooks/useRecentClientsSearch.js +150 -0
- package/lib/hooks/useRecentContexts.js +86 -0
- package/lib/hooks/useResize.js +29 -0
- package/lib/hooks/useSkillsCatalog.js +66 -0
- package/lib/hooks/useSlashCommands.js +84 -0
- package/lib/hooks/useSmoothStreamText/index.js +2 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
- package/lib/hooks/useStreamResponse.js +112 -0
- package/lib/hooks/useStreamdownStyles.js +13 -0
- package/lib/hooks/useStreamingMessage/index.js +2 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
- package/lib/hooks/useT.js +17 -0
- package/lib/hooks/useTabTaskDefault.js +33 -0
- package/lib/hooks/useTaskPanel.js +22 -0
- package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
- package/lib/hooks/useToggle.js +19 -0
- package/lib/hooks/useToggleFavorite/index.js +2 -0
- package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
- package/lib/index.css +76 -0
- package/lib/index.js +30 -0
- package/lib/lang/br/index.js +793 -0
- package/lib/lang/en/index.js +793 -0
- package/lib/lang/es/index.js +794 -0
- package/lib/lang/fr/index.js +614 -0
- package/lib/lang/index.js +24 -0
- package/lib/lang/utils.js +33 -0
- package/lib/mocks/mockChats.js +395 -0
- package/lib/mocks/mockOrchestrator.js +5 -0
- package/lib/mocks/mockProject.js +11 -0
- package/lib/mocks/mockProjectSummary.js +6 -0
- package/lib/mocks/mockedUser.js +169 -0
- package/lib/services/apolloClient.js +3 -0
- package/lib/services/appcues.js +19 -0
- package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
- package/lib/services/corpilot/ProjectSummary/index.js +5 -0
- package/lib/services/corpilot/client.js +27 -0
- package/lib/services/corpilot/index.js +5 -0
- package/lib/services/maia/Access/updateAccess.js +59 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
- package/lib/services/maia/Actions/getSlashCommands.js +39 -0
- package/lib/services/maia/Actions/index.js +7 -0
- package/lib/services/maia/Agents/connectors.js +250 -0
- package/lib/services/maia/Agents/createAgent.js +39 -0
- package/lib/services/maia/Agents/deleteAgent.js +38 -0
- package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
- package/lib/services/maia/Agents/getAgentById.js +162 -0
- package/lib/services/maia/Agents/getAgentModels.js +112 -0
- package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
- package/lib/services/maia/Agents/getAgents.js +718 -0
- package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
- package/lib/services/maia/Agents/toggleFavorite.js +34 -0
- package/lib/services/maia/Agents/updateAgent.js +39 -0
- package/lib/services/maia/Chats/deleteChat.js +32 -0
- package/lib/services/maia/Chats/getChatMessages.js +144 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
- package/lib/services/maia/Chats/index.js +15 -0
- package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
- package/lib/services/maia/Chats/patchChat.js +43 -0
- package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
- package/lib/services/maia/Faqs/index.js +5 -0
- package/lib/services/maia/Knowledge/delete.js +41 -0
- package/lib/services/maia/Knowledge/download.js +48 -0
- package/lib/services/maia/Knowledge/index.js +3 -0
- package/lib/services/maia/Knowledge/save.js +43 -0
- package/lib/services/maia/Orchestrator/index.js +7 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
- package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
- package/lib/services/maia/RecentClients/index.js +6 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
- package/lib/services/maia/RecentContexts/index.js +6 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
- package/lib/services/maia/RecentProjects/index.js +6 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
- package/lib/services/maia/RecentTasks/index.js +6 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
- package/lib/services/maia/RecentUsers/index.js +6 -0
- package/lib/services/maia/Skills/createSkill.js +39 -0
- package/lib/services/maia/Skills/deleteSkill.js +38 -0
- package/lib/services/maia/Skills/generateSkill.js +41 -0
- package/lib/services/maia/Skills/getSkills.js +120 -0
- package/lib/services/maia/Skills/updateSkill.js +39 -0
- package/lib/services/maia/client.js +27 -0
- package/lib/services/maia/index.js +17 -0
- package/lib/services/query/ClientSearchQuery.js +5 -0
- package/lib/services/query/entitySearchQuery.js +18 -0
- package/lib/services/query/index.js +2 -0
- package/lib/services/query/projectSearchByValueQuery.js +5 -0
- package/lib/services/query/taskUserTabQuery.js +8 -0
- package/lib/services/query/usersDirectoryQuery.js +19 -0
- package/lib/services/types.js +6 -0
- package/lib/services/utils/fetchCOR.js +117 -0
- package/lib/services/utils/getCookie.js +10 -0
- package/lib/services/utils/index.js +3 -0
- package/lib/services/utils/mapChatMessages.js +287 -0
- package/lib/services/utils/validateIsMaia.js +4 -0
- package/lib/store/chatsSidebarOptimistic.js +92 -0
- package/lib/store/chatsStore.types.js +2 -0
- package/lib/store/chatsStoreLifecycle.js +8 -0
- package/lib/store/faqsStore.types.js +2 -0
- package/lib/store/index.js +4 -0
- package/lib/store/maiaLastChatPersistence.js +35 -0
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +9 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +110 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +715 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +197 -0
- package/lib/store/useChatsStore.js +387 -0
- package/lib/store/useFaqsStore.js +27 -0
- package/lib/streamdownStyles.js +9 -0
- package/lib/styles/StyledCleanContainer.js +7 -0
- package/lib/styles/cascade.js +14 -0
- package/lib/styles/config.js +47 -0
- package/lib/styles/shared/scrollable.js +3 -0
- package/lib/styles/transitions.js +21 -0
- package/lib/types/Action.js +2 -0
- package/lib/types/AgentSuggestion.js +2 -0
- package/lib/types/Chat.js +10 -0
- package/lib/types/Client.js +2 -0
- package/lib/types/FrequentlyAskedQuestion.js +2 -0
- package/lib/types/Project.js +2 -0
- package/lib/types/ProjectSummaryConfigKeys.js +9 -0
- package/lib/types/Task.js +2 -0
- package/lib/types/agent.js +2 -0
- package/lib/types/agentModal.js +2 -0
- package/lib/types/contextMention.js +37 -0
- package/lib/types/global.d.js +2 -0
- package/lib/types/skill.js +2 -0
- package/lib/types/streamActivity.js +2 -0
- package/lib/types/userType.d.js +2 -0
- package/lib/utils/actionCategoryMap.js +37 -0
- package/lib/utils/actionIconMap.js +61 -0
- package/lib/utils/agentDisplayName.js +42 -0
- package/lib/utils/chatInputFiles.js +52 -0
- package/lib/utils/contextMentionIcons.js +134 -0
- package/lib/utils/contextMentionLabel.js +4 -0
- package/lib/utils/contextMentionTriggers.js +51 -0
- package/lib/utils/contextMentionTypeLabel.js +17 -0
- package/lib/utils/corConnectorMentionTypes.js +41 -0
- package/lib/utils/ensureStreamdownStyles.js +21 -0
- package/lib/utils/entityLinkRender.js +135 -0
- package/lib/utils/fileDownloadHelper.js +40 -0
- package/lib/utils/formatQuickActionMessage.js +16 -0
- package/lib/utils/formatUnreadCount.js +6 -0
- package/lib/utils/getUnitFileSize.js +13 -0
- package/lib/utils/hitlAnalytics.js +65 -0
- package/lib/utils/hoursPlannerQuickActionType.js +64 -0
- package/lib/utils/imagePreprocessor.js +108 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/maiaHostOpen.js +19 -0
- package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
- package/lib/utils/mapBackendLang.js +8 -0
- package/lib/utils/normalizeAgentConnectors.js +95 -0
- package/lib/utils/openTaskInCorPanel.js +22 -0
- package/lib/utils/orchestratorSubagents.js +11 -0
- package/lib/utils/renderContextMentions.js +420 -0
- package/lib/utils/retryCompletion.js +85 -0
- package/lib/utils/slashCommandMarker.js +30 -0
- package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
- package/lib/utils/sseStreamContent.js +17 -0
- package/lib/utils/streamActivityMessages.js +359 -0
- package/lib/utils/validateTrimmedFields.js +8 -0
- package/package.json +1 -1
- package/README.md +0 -2
|
@@ -0,0 +1,614 @@
|
|
|
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: 'Réduire',
|
|
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: "Une erreur s'est produite",
|
|
23
|
+
description: 'Nous rencontrons actuellement quelques problèmes. Veuillez réessayer dans quelques minutes.',
|
|
24
|
+
tryAgain: 'Réessayer'
|
|
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
|
+
selectProject: 'Select project',
|
|
42
|
+
configureResume: 'Advanced settings',
|
|
43
|
+
generatingResume: 'Generating summary',
|
|
44
|
+
generateResume: 'Generate',
|
|
45
|
+
hideConfig: 'Hide settings'
|
|
46
|
+
},
|
|
47
|
+
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')
|
|
48
|
+
};
|
|
49
|
+
var homeMenu = {
|
|
50
|
+
projectSummary: {
|
|
51
|
+
title: 'Résumé du projet',
|
|
52
|
+
description: "Générez des rapports avec l'IA à partir de votre projet"
|
|
53
|
+
},
|
|
54
|
+
faq: {
|
|
55
|
+
startTitle: 'Vous pouvez commencer par...',
|
|
56
|
+
categories: {
|
|
57
|
+
reworks: 'Rework'
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
fua: {
|
|
61
|
+
title: 'Actions fréquentes',
|
|
62
|
+
newBadge: 'Nouveau',
|
|
63
|
+
error: 'Oups! Nous avons eu un problème pour charger les actions fréquentes. Veuillez réessayer dans quelques minutes.'
|
|
64
|
+
},
|
|
65
|
+
recentContexts: {
|
|
66
|
+
title: 'Choisissez un contexte récent pour une réponse plus précise :',
|
|
67
|
+
types: {
|
|
68
|
+
client: 'Client',
|
|
69
|
+
project: 'Projet',
|
|
70
|
+
task: 'Tâche'
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
contextHome: {
|
|
74
|
+
greeting: 'Bonjour, {{name}} 👋',
|
|
75
|
+
subtitle: 'Je suis MAIA, votre assistante pour les tâches, les projets et les clients.\nOn reprend quelque chose de récent ?',
|
|
76
|
+
subtitleCollaborator: 'Je suis MAIA, votre assistante pour les tâches. On reprend quelque chose de récent ?',
|
|
77
|
+
subtitleCollaboratorWithHours: 'Saisissez vos heures ou démarrez un chat sur une tâche.',
|
|
78
|
+
subtitleManagerWithHours: 'Par où voulez-vous commencer ?',
|
|
79
|
+
hoursSection: {
|
|
80
|
+
title: 'Saisir des heures'
|
|
81
|
+
},
|
|
82
|
+
recentTasksSection: {
|
|
83
|
+
title: 'Consulter une tâche',
|
|
84
|
+
subtitle: 'Choisissez une tâche récente pour l’utiliser comme contexte.'
|
|
85
|
+
},
|
|
86
|
+
recentContextsSectionManager: {
|
|
87
|
+
title: 'Ou reprenez quelque chose de récent',
|
|
88
|
+
subtitle: 'Choisissez une tâche, un projet ou un client comme contexte'
|
|
89
|
+
},
|
|
90
|
+
contextGreeting: {
|
|
91
|
+
project: 'Que voulez-vous analyser ? Heures, estimations, reprises ? À vous de choisir !',
|
|
92
|
+
task: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
|
|
93
|
+
client: 'Que voulez-vous analyser ? Rentabilité, avancées, deadlines ? À vous de choisir !'
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
plannerHome: {
|
|
97
|
+
title: 'Commençons par saisir vos heures',
|
|
98
|
+
subtitle: 'Par où commence-t-on ?'
|
|
99
|
+
},
|
|
100
|
+
action: {
|
|
101
|
+
categories: {
|
|
102
|
+
tasks: 'Actions sur les tâches',
|
|
103
|
+
collaborators: 'Collaborateurs et responsables',
|
|
104
|
+
labels: 'Étiquettes et types',
|
|
105
|
+
checklists: 'Checklists',
|
|
106
|
+
deliverables: 'Livrables',
|
|
107
|
+
reworks: 'Reprises',
|
|
108
|
+
hours: 'Saisie des heures'
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
createdBy: 'Created by',
|
|
112
|
+
taskGreeting: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
|
|
113
|
+
maiaker: {
|
|
114
|
+
title: 'Transformez les processus répétitifs en agents intelligents',
|
|
115
|
+
description: 'Créez des agents qui analysent et génèrent du contenu selon vos besoins.',
|
|
116
|
+
createManualAgent: 'Créer un agent manuellement',
|
|
117
|
+
badgeNew: 'Nouveau',
|
|
118
|
+
briefCard: {
|
|
119
|
+
title: 'Agent spécialiste en brief',
|
|
120
|
+
description: 'Créez et améliorez des briefs pour qu’ils soient prêts à être utilisés dans des tâches.',
|
|
121
|
+
prompt: 'Je veux créer un agent spécialiste en brief.'
|
|
122
|
+
},
|
|
123
|
+
comingSoonCard: {
|
|
124
|
+
title: 'Bientôt disponible',
|
|
125
|
+
description: 'Nous travaillons pour vous proposer davantage d’agents'
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
|
|
130
|
+
homeMenu: homeMenu,
|
|
131
|
+
contextMention: {
|
|
132
|
+
keyboardHint: 'Navigation entre les onglets : @, @@… dans l’ordre. Aussi Alt/Cmd + ←/→',
|
|
133
|
+
recentsTitle: 'Récents',
|
|
134
|
+
me: 'Moi',
|
|
135
|
+
tabs: {
|
|
136
|
+
client: 'Client',
|
|
137
|
+
project: 'Projet',
|
|
138
|
+
task: 'Tâche',
|
|
139
|
+
user: 'Utilisateur',
|
|
140
|
+
mcp: 'Connecteurs',
|
|
141
|
+
skill: 'Compétences'
|
|
142
|
+
},
|
|
143
|
+
loading: 'Recherche...',
|
|
144
|
+
error: 'Un problème est survenu. Réessayez.',
|
|
145
|
+
empty: {
|
|
146
|
+
recents: 'Commencez à écrire pour rechercher',
|
|
147
|
+
withQuery: 'Aucun résultat pour "{{query}}"'
|
|
148
|
+
},
|
|
149
|
+
counters: {
|
|
150
|
+
projects: 'projets',
|
|
151
|
+
tasks: 'tâches'
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
contextPin: {
|
|
155
|
+
addContext: 'Contexte global',
|
|
156
|
+
searchPlaceholder: 'Rechercher un contexte…',
|
|
157
|
+
remove: 'Retirer le contexte'
|
|
158
|
+
},
|
|
159
|
+
button: 'IA',
|
|
160
|
+
title: 'Bonjour, {{name}}!',
|
|
161
|
+
description: "Je suis MAIA, ton assistante, et je suis là pour t'aider avec tes questions.",
|
|
162
|
+
newChat: 'Nouveau chat',
|
|
163
|
+
generating: 'Génération de la réponse',
|
|
164
|
+
history: {
|
|
165
|
+
tooltip: 'Historique',
|
|
166
|
+
title: 'Historique vide',
|
|
167
|
+
description: 'Aucune conversation trouvée',
|
|
168
|
+
item: {
|
|
169
|
+
date: 'Dernière mise à jour {{date}}'
|
|
170
|
+
},
|
|
171
|
+
menu: {
|
|
172
|
+
rename: 'Renommer',
|
|
173
|
+
"delete": 'Supprimer'
|
|
174
|
+
},
|
|
175
|
+
loadingMore: 'Chargement des conversations'
|
|
176
|
+
},
|
|
177
|
+
onboarding: {
|
|
178
|
+
maia: 'MAIA',
|
|
179
|
+
agentCustom: 'Custom agents',
|
|
180
|
+
howCreateAgent: 'How to create an agent?',
|
|
181
|
+
tooltip: 'How does it work?'
|
|
182
|
+
},
|
|
183
|
+
qa: {
|
|
184
|
+
title: 'Questions Fréquemment Posées',
|
|
185
|
+
items: {
|
|
186
|
+
rentabilidad_proyecto: 'Quelle est la rentabilité de ce projet ?',
|
|
187
|
+
avance_proyecto: 'Quel est le progrès de ce projet ?',
|
|
188
|
+
tareas_proyecto: 'Quelles sont les tâches à venir à venir ?'
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
attachmentCard: {
|
|
192
|
+
download: 'Télécharger',
|
|
193
|
+
"delete": 'Supprimer'
|
|
194
|
+
},
|
|
195
|
+
chat: {
|
|
196
|
+
generating: 'Analyse du message',
|
|
197
|
+
generatingAttachment: "Analyse de l'attachement",
|
|
198
|
+
suggestionsTitle: 'Réponses suggérées',
|
|
199
|
+
createAgentActionsTitle: 'Étape suivante',
|
|
200
|
+
createAgentActionStartChat: 'Démarrer une conversation avec le nouvel agent',
|
|
201
|
+
createAgentActionKnowledge: 'Téléverser des fichiers dans la base de connaissances',
|
|
202
|
+
createAgentActionLoadError: "Impossible de charger l'agent. Veuillez réessayer.",
|
|
203
|
+
executingAction: "Exécution de l'action",
|
|
204
|
+
processing: 'Traitement en cours',
|
|
205
|
+
activity: {
|
|
206
|
+
generating: {
|
|
207
|
+
preparing: 'Préparation de votre réponse',
|
|
208
|
+
considering: 'Analyse de votre question',
|
|
209
|
+
almostReady: "Définition de l'approche"
|
|
210
|
+
},
|
|
211
|
+
thinking: {
|
|
212
|
+
analyzing: 'Analyse de votre question',
|
|
213
|
+
reviewing: 'Examen du contexte',
|
|
214
|
+
planning: 'Structuration de la réponse'
|
|
215
|
+
},
|
|
216
|
+
search: {
|
|
217
|
+
scanning: 'Recherche sur le web',
|
|
218
|
+
summarizing: 'Analyse des résultats'
|
|
219
|
+
},
|
|
220
|
+
deepSearch: {
|
|
221
|
+
exploring: 'Exploration des sources',
|
|
222
|
+
crossChecking: 'Vérification des informations'
|
|
223
|
+
},
|
|
224
|
+
attachment: {
|
|
225
|
+
reading: 'Lecture de la pièce jointe',
|
|
226
|
+
extracting: 'Extraction des éléments pertinents',
|
|
227
|
+
readingPlural: 'Lecture des pièces jointes',
|
|
228
|
+
extractingPlural: 'Extraction des éléments pertinents'
|
|
229
|
+
},
|
|
230
|
+
writing: {
|
|
231
|
+
composing: 'Rédaction de la réponse'
|
|
232
|
+
},
|
|
233
|
+
dynamicContextTooltip: 'Ce contexte a été généré dynamiquement et peut évoluer au fil de la conversation.',
|
|
234
|
+
creatingTask: 'Création de tâche',
|
|
235
|
+
creatingTasksBatch: 'Création de tâches',
|
|
236
|
+
creatingAgent: "Création d'agent",
|
|
237
|
+
editingAgent: "Modification de l'agent",
|
|
238
|
+
editingTask: 'Modification de tâche',
|
|
239
|
+
editingTasksBatch: 'Modification de tâches',
|
|
240
|
+
deletingTask: 'Suppression de tâche',
|
|
241
|
+
deletingTasksBatch: 'Suppression de tâches',
|
|
242
|
+
assigningUser: "Attribution d'utilisateur",
|
|
243
|
+
unassigningUser: "Retrait d'utilisateur",
|
|
244
|
+
assigningLabel: "Attribution d'étiquette",
|
|
245
|
+
updatingTaskType: 'Mise à jour du type de tâche',
|
|
246
|
+
updatingEstimatedHours: 'Mise à jour des heures estimées',
|
|
247
|
+
updatingDeliverable: 'Mise à jour du livrable',
|
|
248
|
+
loggingHours: "Saisie d'heures",
|
|
249
|
+
creatingChecklist: 'Création de checklist',
|
|
250
|
+
creatingLabel: "Création de l'étiquette",
|
|
251
|
+
editingProject: 'Modification du projet',
|
|
252
|
+
creatingChecklistItem: "Ajout d'un élément à la checklist",
|
|
253
|
+
queryingHours: 'Consultation des heures par date',
|
|
254
|
+
configuringAgentAccess: "Modification de la visibilité de l'agent",
|
|
255
|
+
sendingTaskMessage: "Envoi d'un message sur la tâche",
|
|
256
|
+
deletingChecklistItem: "Suppression d'un élément de la checklist",
|
|
257
|
+
removingTaskType: 'Suppression du type de tâche',
|
|
258
|
+
removingLabel: "Suppression de l'étiquette",
|
|
259
|
+
updatingDeliverableCount: 'Mise à jour du compteur de livrables',
|
|
260
|
+
creatingRework: "Création d'une reprise",
|
|
261
|
+
updatingRework: 'Mise à jour de la reprise',
|
|
262
|
+
generatingFile: 'Génération du fichier',
|
|
263
|
+
resumingAction: "Exécution de l'action approuvée"
|
|
264
|
+
},
|
|
265
|
+
loadingMore: 'Chargement des messages',
|
|
266
|
+
footer: {
|
|
267
|
+
placeholder: "Comment puis-je t'aider aujourd'hui ?",
|
|
268
|
+
corAccessLabel: 'Accès à COR',
|
|
269
|
+
corAccessTooltip: 'Accès aux données COR',
|
|
270
|
+
orchestratorPlaceholder: 'Demandez à Maia, @ pour mentionner ou / pour les actions rapides'
|
|
271
|
+
},
|
|
272
|
+
error: 'Une erreur est survenue lors de la génération de votre réponse, veuillez réessayer.',
|
|
273
|
+
retry: 'Réessayer',
|
|
274
|
+
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.",
|
|
275
|
+
errorPromptTooLong: 'Vous avez dépassé la limite de contexte {{used}} tokens. Veuillez réessayer ou continuer dans un autre chat',
|
|
276
|
+
changeProject: "J'ai détecté que vous souhaitez changer de Projet.\n\n**Sélectionnez le projet pour continuer :**",
|
|
277
|
+
searchWeb: 'Search the web',
|
|
278
|
+
deepSearch: 'In-depth research',
|
|
279
|
+
attachFile: 'Attach file',
|
|
280
|
+
plusMenuAttach: 'Joindre des fichiers',
|
|
281
|
+
dropFilesHere: 'Déposez les fichiers ici',
|
|
282
|
+
plusMenuDeepInvestigation: 'Rechercher en profondeur',
|
|
283
|
+
plusMenuQuickActions: 'Actions rapides',
|
|
284
|
+
openPlusMenuAria: 'Pièces jointes et options de recherche',
|
|
285
|
+
openMentionAria: 'Mentionner',
|
|
286
|
+
removeAttachmentAria: 'Retirer le fichier',
|
|
287
|
+
removeActiveToolAria: 'Retirer le mode recherche',
|
|
288
|
+
send: 'Send',
|
|
289
|
+
limitFiles: 'You have exceeded the attachment limit',
|
|
290
|
+
stop: 'Stop generating',
|
|
291
|
+
cancelled: 'The search has been cancelled.',
|
|
292
|
+
tooManyActiveSessions: 'Trop de conversations sont générées en même temps. Attendez qu’une se termine avant d’en démarrer une autre.'
|
|
293
|
+
},
|
|
294
|
+
deleteQuestionModal: {
|
|
295
|
+
title: 'Voulez-vous supprimer cette conversation?',
|
|
296
|
+
cancel: 'Annuler',
|
|
297
|
+
"delete": 'Supprimer'
|
|
298
|
+
},
|
|
299
|
+
deleteSkillModal: {
|
|
300
|
+
title: 'Voulez-vous supprimer cette skill?',
|
|
301
|
+
firstPart: 'Vous etes sur le point de supprimer',
|
|
302
|
+
secondPart: 'Cette action est irreversible.',
|
|
303
|
+
cancel: 'Annuler',
|
|
304
|
+
"delete": 'Supprimer'
|
|
305
|
+
},
|
|
306
|
+
editQuestionModal: {
|
|
307
|
+
newName: 'New name',
|
|
308
|
+
title: 'Rename conversation',
|
|
309
|
+
rename: 'Rename',
|
|
310
|
+
cancel: 'Cancel',
|
|
311
|
+
maxLength: 'You cannot enter more than 150 characters.'
|
|
312
|
+
},
|
|
313
|
+
modalFileExceeds: {
|
|
314
|
+
limitFilesTitle: 'Maximum attachments exceeded.',
|
|
315
|
+
limitSizeTitle: "You've exceeded the allowed file size limit",
|
|
316
|
+
limitFilesDescription: 'You can attach a maximum of 5 files per message. The following files could not be attached:',
|
|
317
|
+
limitSizeDescription: 'One or more files exceed the maximum allowed size by type. The following files could not be attached:',
|
|
318
|
+
accept: 'Accept',
|
|
319
|
+
limit: 'limit',
|
|
320
|
+
stop: 'Cancel search'
|
|
321
|
+
},
|
|
322
|
+
sourcesInformationModal: {
|
|
323
|
+
title: 'Sources:'
|
|
324
|
+
},
|
|
325
|
+
agents: {
|
|
326
|
+
title: 'Agents',
|
|
327
|
+
newAgent: 'Nouvel agent',
|
|
328
|
+
edit: 'Éditer',
|
|
329
|
+
maia: '(Spécialiste de projet)',
|
|
330
|
+
addFavorite: 'Add to favorites',
|
|
331
|
+
removeFavorite: 'Remove from favorites',
|
|
332
|
+
favoriteToggledAddedSuccess: 'Agent added to favorites',
|
|
333
|
+
favoriteToggledRemovedSuccess: 'Agent removed from favorites',
|
|
334
|
+
favoriteToggledError: 'Could not save your favorite. Please try again.'
|
|
335
|
+
},
|
|
336
|
+
conversations: {
|
|
337
|
+
title: 'Mes conversations',
|
|
338
|
+
agentsSectionTitle: 'Agents',
|
|
339
|
+
maiakerNav: "Créateur d'agents",
|
|
340
|
+
myAgentsNav: 'Mes agents',
|
|
341
|
+
mySkillsNav: 'Skills',
|
|
342
|
+
error: 'An error occurred while loading the conversation history',
|
|
343
|
+
empty: "You haven't started any conversations yet",
|
|
344
|
+
emptyLabel: 'Message with attachments',
|
|
345
|
+
unreadLabel: 'Non lu',
|
|
346
|
+
minimizedOpen: 'Ouvrir MAIA',
|
|
347
|
+
minimizedSeeAnswer: 'Voir la réponse',
|
|
348
|
+
collapse: 'Collapse',
|
|
349
|
+
expand: 'Expand',
|
|
350
|
+
newChat: 'New chat',
|
|
351
|
+
generating: 'Génération de la réponse',
|
|
352
|
+
sessionFinished: '{{title}} a terminé de répondre',
|
|
353
|
+
sessionFinishedApproval: '{{title}} requiert votre approbation',
|
|
354
|
+
sessionFinishedError: '{{title}} a rencontré une erreur',
|
|
355
|
+
openAgentCreator: 'Créer un agent',
|
|
356
|
+
openMarketplace: "Marketplace d'agents"
|
|
357
|
+
},
|
|
358
|
+
marketplace: {
|
|
359
|
+
back: 'Retour',
|
|
360
|
+
title: 'Idees pour creer des agents',
|
|
361
|
+
description: "Choisissez une suggestion bien construite et ouvrez l'editeur avec l'agent deja pre-rempli pour l'adapter a votre cas.",
|
|
362
|
+
myAgentsTitle: 'Mes agents',
|
|
363
|
+
myAgentsReadyTitle: 'Vos agents sont prets a vous aider avec des taches',
|
|
364
|
+
myAgentsDescription: 'Voici vos agents custom. Selectionnez-en un pour commencer a discuter avec ce profil.',
|
|
365
|
+
myAgentsEmptyStateTitle: "Vous n'avez pas encore d'agents crees",
|
|
366
|
+
myAgentsEmptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer des agents sur mesure.',
|
|
367
|
+
myAgentsEmptyStateDescriptionNoPerm: "Lorsqu'une personne habilitee les aura configures, vous pourrez y acceder depuis ici.",
|
|
368
|
+
myAgentsEmptyStateButton: 'Creer un agent',
|
|
369
|
+
myAgentsFallbackIntro: 'Agent personnalise pret a vous aider dans votre flux de travail.',
|
|
370
|
+
myAgentsFallbackDescription: 'Cliquez sur utiliser agent pour demarrer une conversation avec cet agent.',
|
|
371
|
+
myAgentsFallbackDate: 'Il y a quelques jours',
|
|
372
|
+
myAgentsToday: "Aujourd'hui",
|
|
373
|
+
myAgentsOneDayAgo: 'Il y a 1 jour',
|
|
374
|
+
myAgentsDaysAgo: 'Il y a {{days}} jours',
|
|
375
|
+
cardMenuAriaLabel: "Menu d'actions de l'agent",
|
|
376
|
+
use: 'Utiliser',
|
|
377
|
+
createAgent: 'Creer un agent manuellement',
|
|
378
|
+
searchAgentPlaceholder: 'Rechercher un agent...',
|
|
379
|
+
searchMinLength: 'min. 3 caractères',
|
|
380
|
+
searchNoResults: 'Aucun résultat trouvé.',
|
|
381
|
+
searchNoResultsSubtitle: 'Créez un agent IA capable de penser, d’agir et d’automatiser le travail pour vous',
|
|
382
|
+
useTemplate: 'Creer a partir de cette idee',
|
|
383
|
+
useMyAgent: 'Utiliser agent',
|
|
384
|
+
badges: {
|
|
385
|
+
branding: 'Branding',
|
|
386
|
+
linkedin: 'LinkedIn',
|
|
387
|
+
marketing: 'Marketing'
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
mySkills: {
|
|
391
|
+
title: 'Specialisez MAIA avec vos propres regles',
|
|
392
|
+
subtitle: 'Les skills sont globales : elles sont disponibles pour tous vos agents.',
|
|
393
|
+
tabMySkills: 'Mes skills',
|
|
394
|
+
tabSharedSkills: 'Skills partagees',
|
|
395
|
+
dropdownButton: 'Skills',
|
|
396
|
+
dropdownCreate: 'Creer une nouvelle skill',
|
|
397
|
+
dropdownEmpty: 'Aucune skill pour l instant',
|
|
398
|
+
dropdownError: 'Une erreur est survenue. Veuillez reessayer.',
|
|
399
|
+
mySkillsDescription: 'Competences creees par vous.',
|
|
400
|
+
sharedSkillsDescription: 'Competences partagees par d autres membres de votre equipe.',
|
|
401
|
+
searchPlaceholder: 'Rechercher des competences...',
|
|
402
|
+
createManually: 'Creer manuellement',
|
|
403
|
+
visibilityOnlyMe: 'Moi uniquement',
|
|
404
|
+
visibilityEveryone: 'Visible pour tous',
|
|
405
|
+
sharedEmptyStateTitle: 'Personne ne vous a encore partage de skills.',
|
|
406
|
+
sharedEmptyStateDescription: 'Lorsque votre entreprise partagera des skills, elles apparaitront ici.',
|
|
407
|
+
createSkill: 'Creer une skill',
|
|
408
|
+
preview: 'Apercu',
|
|
409
|
+
previewEmpty: 'Rien a previsualiser pour le moment.',
|
|
410
|
+
uploadMd: 'Importer .md',
|
|
411
|
+
uploadError: 'Seuls les fichiers .md sont autorises',
|
|
412
|
+
createWithMaia: 'Creer avec Maia',
|
|
413
|
+
writeInstructions: 'Ecrire les instructions',
|
|
414
|
+
uploadSkill: 'Importer une skill',
|
|
415
|
+
generatePlaceholder: 'Je veux une Skill pour creer mes projets',
|
|
416
|
+
generateWithMaia: 'Creer la Skill avec Maia',
|
|
417
|
+
generateNeedsName: 'Saisissez d abord un nom pour decrire la skill',
|
|
418
|
+
generateSuccess: 'Skill generee avec Maia',
|
|
419
|
+
generateError: 'La skill n a pas pu etre generee. Veuillez reessayer.',
|
|
420
|
+
cardMenuAriaLabel: "Menu d'actions de la skill",
|
|
421
|
+
edit: 'Modifier',
|
|
422
|
+
"delete": 'Supprimer',
|
|
423
|
+
cancel: 'Annuler',
|
|
424
|
+
save: 'Enregistrer',
|
|
425
|
+
close: 'Fermer',
|
|
426
|
+
createTitle: 'Creation de skill',
|
|
427
|
+
editTitle: 'Modifier la skill',
|
|
428
|
+
viewTitle: 'Skill partagee',
|
|
429
|
+
useSkill: 'Utiliser la skill',
|
|
430
|
+
infoTooltip: "Les skills sont des instructions que vous donnez a un agent pour qu'il resolve une tache toujours de la meme facon. Mentionnez-la avec # dans le chat et l'agent suivra ces etapes.",
|
|
431
|
+
sharedCreatedBy: 'Creee par {{name}}',
|
|
432
|
+
nameLabel: 'Nom',
|
|
433
|
+
namePlaceholder: 'Nom de la skill',
|
|
434
|
+
descriptionLabel: 'Description',
|
|
435
|
+
descriptionPlaceholder: 'Decrivez brievement a quoi sert la skill',
|
|
436
|
+
instructionsLabel: 'Instructions',
|
|
437
|
+
shareWithCompany: 'Activer pour toute l entreprise',
|
|
438
|
+
createdBy: 'Cree par',
|
|
439
|
+
lastUpdated: 'Derniere mise a jour',
|
|
440
|
+
saveAndUse: 'Enregistrer et utiliser la skill',
|
|
441
|
+
contentLabel: 'Skill',
|
|
442
|
+
contentPlaceholder: 'Ecrivez la skill...',
|
|
443
|
+
emptyStateTitle: "Vous n'avez pas encore de skills",
|
|
444
|
+
emptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer des skills sur mesure.',
|
|
445
|
+
emptyStateDescriptionNoPerm: 'Lorsquune personne habilitee les aura configurees, vous pourrez y acceder depuis ici.',
|
|
446
|
+
emptyStateButton: 'Creer une skill',
|
|
447
|
+
searchEmptyStateTitle: 'Aucune skill trouvee',
|
|
448
|
+
searchEmptyStateDescription: 'Essayez un autre terme ou verifiez votre recherche.',
|
|
449
|
+
createSuccess: 'Skill creee avec succes',
|
|
450
|
+
createError: "La skill n'a pas pu etre creee. Veuillez reessayer.",
|
|
451
|
+
updateSuccess: 'Skill mise a jour avec succes',
|
|
452
|
+
updateError: "La skill n'a pas pu etre mise a jour. Veuillez reessayer.",
|
|
453
|
+
deleteSuccess: 'Skill supprimee avec succes',
|
|
454
|
+
deleteError: "La skill n'a pas pu etre supprimee. Veuillez reessayer."
|
|
455
|
+
},
|
|
456
|
+
snackbar: {
|
|
457
|
+
deleteChat: {
|
|
458
|
+
success: 'Chat deleted successfully',
|
|
459
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
460
|
+
},
|
|
461
|
+
renamedChat: {
|
|
462
|
+
success: 'Conversation renamed successfully',
|
|
463
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
464
|
+
},
|
|
465
|
+
loadMoreAgents: {
|
|
466
|
+
error: 'An unexpected error occurred. Please, try again.'
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
approvalBox: {
|
|
470
|
+
untitledAgent: 'Agent sans titre',
|
|
471
|
+
actions: {
|
|
472
|
+
create_task: 'Création de tâche',
|
|
473
|
+
create_tasks_batch: 'Création de tâches',
|
|
474
|
+
create_agent: 'Création d’agent',
|
|
475
|
+
edit_agent: 'Modification de l’agent',
|
|
476
|
+
edit_project: 'Modification du projet',
|
|
477
|
+
edit_task: 'Modification de tâche',
|
|
478
|
+
edit_tasks_batch: 'Modification de tâches',
|
|
479
|
+
delete_task: 'Suppression de tâche',
|
|
480
|
+
delete_tasks_batch: 'Suppression de tâches',
|
|
481
|
+
task_assign: 'Attribution d’utilisateur',
|
|
482
|
+
task_unassign: 'Retrait d’utilisateur',
|
|
483
|
+
assign_task_label: 'Attribution d’étiquette',
|
|
484
|
+
create_labels: 'Création d’étiquette',
|
|
485
|
+
update_task_type: 'Mise à jour du type de tâche',
|
|
486
|
+
update_estimated_hours: 'Mise à jour des heures estimées',
|
|
487
|
+
update_deliverable: 'Mise à jour du livrable',
|
|
488
|
+
create_hour: 'Saisie d’heures',
|
|
489
|
+
create_checklist: 'Création de checklist',
|
|
490
|
+
create_checklist_item: 'Ajout d’un élément à la checklist',
|
|
491
|
+
clone_task: 'Dupliquer la tâche',
|
|
492
|
+
get_task_date_hours: 'Consultation des heures par date',
|
|
493
|
+
configure_agent_access: "Modifier la visibilité de l'agent",
|
|
494
|
+
send_task_message: 'Envoi d’un message sur la tâche',
|
|
495
|
+
delete_checklist_item: 'Suppression d’un élément de la checklist',
|
|
496
|
+
remove_task_type: 'Suppression du type de tâche',
|
|
497
|
+
remove_task_label: 'Suppression de l’étiquette',
|
|
498
|
+
count_deliverable: 'Mise à jour du compteur de livrables',
|
|
499
|
+
create_rework: 'Création d’une reprise',
|
|
500
|
+
update_rework: 'Mise à jour de la reprise',
|
|
501
|
+
delete_agent: 'Suppression de l’agent',
|
|
502
|
+
unknown: 'Action inconnue'
|
|
503
|
+
},
|
|
504
|
+
special: {
|
|
505
|
+
createRework: {
|
|
506
|
+
title: 'Créer une reprise',
|
|
507
|
+
description: 'Une demande de reprise sera créée sur la tâche avec les informations ci-dessous.'
|
|
508
|
+
},
|
|
509
|
+
updateDeliverableChildren: {
|
|
510
|
+
title: 'Mettre à jour l’avancement des livrables',
|
|
511
|
+
description: 'L’avancement des sous-livrables liés à cette tâche sera mis à jour.'
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
fields: {
|
|
515
|
+
name: 'Nom',
|
|
516
|
+
emoji: 'Emoji',
|
|
517
|
+
introduction: 'Introduction',
|
|
518
|
+
input_placeholder: 'Placeholder',
|
|
519
|
+
user_prompt: 'Prompt principal',
|
|
520
|
+
language: 'Langue',
|
|
521
|
+
provider: 'Provider',
|
|
522
|
+
model_name: 'Modèle',
|
|
523
|
+
api_key: 'API key'
|
|
524
|
+
},
|
|
525
|
+
title: 'Confirmation requise',
|
|
526
|
+
description: 'Votre approbation est nécessaire pour exécuter l’action suivante :',
|
|
527
|
+
approve: 'Approuver',
|
|
528
|
+
deny: 'Refuser',
|
|
529
|
+
manualApprovalWarning: 'Maia a détecté que la demande a été approuvée manuellement',
|
|
530
|
+
status: {
|
|
531
|
+
approved: 'Demande approuvée',
|
|
532
|
+
denied: 'Demande refusée'
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
chipLlm: {
|
|
536
|
+
tooltip: 'Modèle : {{model}}'
|
|
537
|
+
},
|
|
538
|
+
clientSelector: {
|
|
539
|
+
project: 'projet',
|
|
540
|
+
projects: 'projets'
|
|
541
|
+
}
|
|
542
|
+
})), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
543
|
+
legendLegacyContextSession: 'Cette conversation appartient à un contexte précédent. Vous pouvez continuer avec {{name}} dans un nouveau chat.',
|
|
544
|
+
continueInNewChat: 'Continuer dans un nouveau chat',
|
|
545
|
+
layoutMenuTooltip: 'Disposition du chat',
|
|
546
|
+
layoutSidebar: 'Barre latérale',
|
|
547
|
+
layoutFullscreen: 'Plein écran',
|
|
548
|
+
layoutFloating: 'Fenêtre flottante',
|
|
549
|
+
back: 'Retour',
|
|
550
|
+
openAgentCreator: 'Créer un agent',
|
|
551
|
+
accessibilitySection: {
|
|
552
|
+
titleTab: 'Permissions',
|
|
553
|
+
titleSection: "Visibilité et permissions de l'agent",
|
|
554
|
+
subtitleSection: "Définissez qui peut utiliser cet agent et s'il peut accéder aux données COR.",
|
|
555
|
+
corPermissionsTitle: "Permissions d'accès aux données COR",
|
|
556
|
+
corPermissionsSubtitle: 'À quoi cet agent a-t-il accès ?',
|
|
557
|
+
taskAccessTitle: 'Accès aux tâches',
|
|
558
|
+
taskAccessDescription: "L'agent pourra lire, créer, modifier et supprimer des tâches selon les permissions de l'utilisateur.",
|
|
559
|
+
mcpPermissionsTitle: 'Connecteurs externes',
|
|
560
|
+
mcpPermissionsSubtitle: 'À quels outils externes cet agent a-t-il accès ?',
|
|
561
|
+
netsuiteAccessTitle: 'NetSuite',
|
|
562
|
+
netsuiteAccessDescription: "L'agent pourra lire et mettre à jour les enregistrements NetSuite. Nous vous demanderons d'autoriser l'accès lors de l'enregistrement.",
|
|
563
|
+
connectorAccessDescription: "L'agent pourra utiliser {{name}}. Nous vous demanderons d'autoriser l'accès lors de l'enregistrement.",
|
|
564
|
+
connectorAuthFailed: "Impossible d'ouvrir la connexion du connecteur. Réessayez ou vérifiez la configuration OAuth.",
|
|
565
|
+
connectorAuthIncomplete: "La connexion NetSuite n'est pas terminée. Enregistrez à nouveau, cliquez sur Autoriser et attendez la fermeture de la fenêtre.",
|
|
566
|
+
netsuiteAuthSetupRequired: "NetSuite n'enregistre pas l'application tout seul. Un admin doit créer une Integration (Public Client, scope AI Connector, Redirect URI MAIA). Ensuite le login s'affiche dans le popup.",
|
|
567
|
+
visibilityTitle: "Visibilité de l'agent",
|
|
568
|
+
whoCanAccess: 'Qui peut utiliser cet agent ?',
|
|
569
|
+
allCompanyTitle: "Toute l'entreprise",
|
|
570
|
+
allCompanyDescription: 'Tous les utilisateurs de votre organisation pourront voir et utiliser cet agent.',
|
|
571
|
+
clientTitle: 'Pour des clients spécifiques',
|
|
572
|
+
clientDescription: 'Associez cet agent à un ou plusieurs clients. Tous les utilisateurs pourront voir à quels clients il est lié.',
|
|
573
|
+
ownTitle: 'Moi uniquement',
|
|
574
|
+
ownDescription: 'Cet agent sera privé et ne sera pas disponible pour les autres utilisateurs.',
|
|
575
|
+
clientsSelected: 'Clients selected:',
|
|
576
|
+
searchError: 'An error occurred while loading the list of clients, please try again in a few minutes.',
|
|
577
|
+
searchEmpty: 'Oops! No clients were found that match your search.',
|
|
578
|
+
searchInitial: 'Write a word to start your search',
|
|
579
|
+
searchPlaceholder: 'Search client',
|
|
580
|
+
clientInactive: 'This client is inactive. We recommend removing it from the list.',
|
|
581
|
+
clientDeletedTooltip: 'This client was deleted. We recommend removing it from the list.',
|
|
582
|
+
clientDeleted: 'Client deleted'
|
|
583
|
+
}
|
|
584
|
+
})), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
585
|
+
projectSelector: {
|
|
586
|
+
title: 'Which project would you like help with?',
|
|
587
|
+
subtitle: 'Select a project so MAIA can respond in context.',
|
|
588
|
+
labelProject: 'SELECT PROJECT',
|
|
589
|
+
placeholder: 'Search',
|
|
590
|
+
changeProject: 'Change project',
|
|
591
|
+
recentProjects: 'Recent projects',
|
|
592
|
+
errorMessage: 'Search error! Please try again in a few moments.',
|
|
593
|
+
emptyRecentProjects: 'No recent projects. Enter the name in the search bar to get results.',
|
|
594
|
+
emptyState: 'Oops! there are no results for your search',
|
|
595
|
+
withoutClient: 'No client',
|
|
596
|
+
withoutTitle: 'No title'
|
|
597
|
+
}
|
|
598
|
+
})), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
|
|
599
|
+
clientSelector: {
|
|
600
|
+
title: 'Which client would you like help with?',
|
|
601
|
+
subtitle: 'Select a client so MAIA can respond in context.',
|
|
602
|
+
labelClient: 'SELECT CLIENT',
|
|
603
|
+
placeholder: 'Search',
|
|
604
|
+
changeClient: 'Change client',
|
|
605
|
+
recentClients: 'Recent clients',
|
|
606
|
+
searchingClients: 'Searching your clients...',
|
|
607
|
+
errorMessage: 'Search error! Please try again in a few moments.',
|
|
608
|
+
emptyRecentClients: 'No recent clients. Enter the name in the search bar to get results.',
|
|
609
|
+
emptyState: 'Oops! there are no results for your search',
|
|
610
|
+
project: 'projet',
|
|
611
|
+
projects: 'projets'
|
|
612
|
+
}
|
|
613
|
+
}));
|
|
614
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwiY29uZmlndXJlUmVzdW1lIiwiZ2VuZXJhdGluZ1Jlc3VtZSIsImdlbmVyYXRlUmVzdW1lIiwiaGlkZUNvbmZpZyIsImNvbmZpZ3VyZVNldHRpbmdzIiwiX2RlZmluZVByb3BlcnR5IiwiR0VORVJBTF9TVEFUVVMiLCJJTkNPTUVfQ09TVFMiLCJUSU1FX0hPVVJTIiwiVEFTS1NfUFJPR1JFU1MiLCJSRVdPUktTIiwiaG9tZU1lbnUiLCJmYXEiLCJzdGFydFRpdGxlIiwiY2F0ZWdvcmllcyIsInJld29ya3MiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJ0YXNrcyIsImNvbGxhYm9yYXRvcnMiLCJsYWJlbHMiLCJjaGVja2xpc3RzIiwiZGVsaXZlcmFibGVzIiwiaG91cnMiLCJjcmVhdGVkQnkiLCJ0YXNrR3JlZXRpbmciLCJtYWlha2VyIiwiY3JlYXRlTWFudWFsQWdlbnQiLCJiYWRnZU5ldyIsImJyaWVmQ2FyZCIsInByb21wdCIsImNvbWluZ1Nvb25DYXJkIiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImNvbnRleHRNZW50aW9uIiwia2V5Ym9hcmRIaW50IiwicmVjZW50c1RpdGxlIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsImVtcHR5IiwicmVjZW50cyIsIndpdGhRdWVyeSIsImNvdW50ZXJzIiwicHJvamVjdHMiLCJjb250ZXh0UGluIiwiYWRkQ29udGV4dCIsInNlYXJjaFBsYWNlaG9sZGVyIiwicmVtb3ZlIiwiYnV0dG9uIiwibmV3Q2hhdCIsImdlbmVyYXRpbmciLCJoaXN0b3J5IiwidG9vbHRpcCIsIml0ZW0iLCJkYXRlIiwibWVudSIsInJlbmFtZSIsImxvYWRpbmdNb3JlIiwib25ib2FyZGluZyIsIm1haWEiLCJhZ2VudEN1c3RvbSIsImhvd0NyZWF0ZUFnZW50IiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJjaGF0IiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJzdWdnZXN0aW9uc1RpdGxlIiwiY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCIsImNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlIiwiY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3IiLCJleGVjdXRpbmdBY3Rpb24iLCJwcm9jZXNzaW5nIiwiYWN0aXZpdHkiLCJwcmVwYXJpbmciLCJjb25zaWRlcmluZyIsImFsbW9zdFJlYWR5IiwidGhpbmtpbmciLCJhbmFseXppbmciLCJyZXZpZXdpbmciLCJwbGFubmluZyIsInNlYXJjaCIsInNjYW5uaW5nIiwic3VtbWFyaXppbmciLCJkZWVwU2VhcmNoIiwiZXhwbG9yaW5nIiwiY3Jvc3NDaGVja2luZyIsImF0dGFjaG1lbnQiLCJyZWFkaW5nIiwiZXh0cmFjdGluZyIsInJlYWRpbmdQbHVyYWwiLCJleHRyYWN0aW5nUGx1cmFsIiwid3JpdGluZyIsImNvbXBvc2luZyIsImR5bmFtaWNDb250ZXh0VG9vbHRpcCIsImNyZWF0aW5nVGFzayIsImNyZWF0aW5nVGFza3NCYXRjaCIsImNyZWF0aW5nQWdlbnQiLCJlZGl0aW5nQWdlbnQiLCJlZGl0aW5nVGFzayIsImVkaXRpbmdUYXNrc0JhdGNoIiwiZGVsZXRpbmdUYXNrIiwiZGVsZXRpbmdUYXNrc0JhdGNoIiwiYXNzaWduaW5nVXNlciIsInVuYXNzaWduaW5nVXNlciIsImFzc2lnbmluZ0xhYmVsIiwidXBkYXRpbmdUYXNrVHlwZSIsInVwZGF0aW5nRXN0aW1hdGVkSG91cnMiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlIiwibG9nZ2luZ0hvdXJzIiwiY3JlYXRpbmdDaGVja2xpc3QiLCJjcmVhdGluZ0xhYmVsIiwiZWRpdGluZ1Byb2plY3QiLCJjcmVhdGluZ0NoZWNrbGlzdEl0ZW0iLCJxdWVyeWluZ0hvdXJzIiwiY29uZmlndXJpbmdBZ2VudEFjY2VzcyIsInNlbmRpbmdUYXNrTWVzc2FnZSIsImRlbGV0aW5nQ2hlY2tsaXN0SXRlbSIsInJlbW92aW5nVGFza1R5cGUiLCJyZW1vdmluZ0xhYmVsIiwidXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50IiwiY3JlYXRpbmdSZXdvcmsiLCJ1cGRhdGluZ1Jld29yayIsImdlbmVyYXRpbmdGaWxlIiwicmVzdW1pbmdBY3Rpb24iLCJmb290ZXIiLCJwbGFjZWhvbGRlciIsImNvckFjY2Vzc0xhYmVsIiwiY29yQWNjZXNzVG9vbHRpcCIsIm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyIiwicmV0cnkiLCJlcnJvckFjY2Vzc0RlbmllZCIsImVycm9yUHJvbXB0VG9vTG9uZyIsImNoYW5nZVByb2plY3QiLCJzZWFyY2hXZWIiLCJhdHRhY2hGaWxlIiwicGx1c01lbnVBdHRhY2giLCJkcm9wRmlsZXNIZXJlIiwicGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbiIsInBsdXNNZW51UXVpY2tBY3Rpb25zIiwib3BlblBsdXNNZW51QXJpYSIsIm9wZW5NZW50aW9uQXJpYSIsInJlbW92ZUF0dGFjaG1lbnRBcmlhIiwicmVtb3ZlQWN0aXZlVG9vbEFyaWEiLCJzZW5kIiwibGltaXRGaWxlcyIsInN0b3AiLCJjYW5jZWxsZWQiLCJ0b29NYW55QWN0aXZlU2Vzc2lvbnMiLCJkZWxldGVRdWVzdGlvbk1vZGFsIiwiZGVsZXRlU2tpbGxNb2RhbCIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJlZGl0UXVlc3Rpb25Nb2RhbCIsIm5ld05hbWUiLCJtYXhMZW5ndGgiLCJtb2RhbEZpbGVFeGNlZWRzIiwibGltaXRGaWxlc1RpdGxlIiwibGltaXRTaXplVGl0bGUiLCJsaW1pdEZpbGVzRGVzY3JpcHRpb24iLCJsaW1pdFNpemVEZXNjcmlwdGlvbiIsImFjY2VwdCIsImxpbWl0Iiwic291cmNlc0luZm9ybWF0aW9uTW9kYWwiLCJhZ2VudHMiLCJuZXdBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImNvbnZlcnNhdGlvbnMiLCJhZ2VudHNTZWN0aW9uVGl0bGUiLCJtYWlha2VyTmF2IiwibXlBZ2VudHNOYXYiLCJteVNraWxsc05hdiIsImVtcHR5TGFiZWwiLCJ1bnJlYWRMYWJlbCIsIm1pbmltaXplZE9wZW4iLCJtaW5pbWl6ZWRTZWVBbnN3ZXIiLCJzZXNzaW9uRmluaXNoZWQiLCJzZXNzaW9uRmluaXNoZWRBcHByb3ZhbCIsInNlc3Npb25GaW5pc2hlZEVycm9yIiwib3BlbkFnZW50Q3JlYXRvciIsIm9wZW5NYXJrZXRwbGFjZSIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsImNyZWF0ZUFnZW50Iiwic2VhcmNoQWdlbnRQbGFjZWhvbGRlciIsInNlYXJjaE1pbkxlbmd0aCIsInNlYXJjaE5vUmVzdWx0cyIsInNlYXJjaE5vUmVzdWx0c1N1YnRpdGxlIiwidXNlVGVtcGxhdGUiLCJ1c2VNeUFnZW50IiwiYmFkZ2VzIiwiYnJhbmRpbmciLCJsaW5rZWRpbiIsIm1hcmtldGluZyIsIm15U2tpbGxzIiwidGFiTXlTa2lsbHMiLCJ0YWJTaGFyZWRTa2lsbHMiLCJkcm9wZG93bkJ1dHRvbiIsImRyb3Bkb3duQ3JlYXRlIiwiZHJvcGRvd25FbXB0eSIsImRyb3Bkb3duRXJyb3IiLCJteVNraWxsc0Rlc2NyaXB0aW9uIiwic2hhcmVkU2tpbGxzRGVzY3JpcHRpb24iLCJjcmVhdGVNYW51YWxseSIsInZpc2liaWxpdHlPbmx5TWUiLCJ2aXNpYmlsaXR5RXZlcnlvbmUiLCJzaGFyZWRFbXB0eVN0YXRlVGl0bGUiLCJzaGFyZWRFbXB0eVN0YXRlRGVzY3JpcHRpb24iLCJjcmVhdGVTa2lsbCIsInByZXZpZXciLCJwcmV2aWV3RW1wdHkiLCJ1cGxvYWRNZCIsInVwbG9hZEVycm9yIiwiY3JlYXRlV2l0aE1haWEiLCJ3cml0ZUluc3RydWN0aW9ucyIsInVwbG9hZFNraWxsIiwiZ2VuZXJhdGVQbGFjZWhvbGRlciIsImdlbmVyYXRlV2l0aE1haWEiLCJnZW5lcmF0ZU5lZWRzTmFtZSIsImdlbmVyYXRlU3VjY2VzcyIsImdlbmVyYXRlRXJyb3IiLCJjcmVhdGVUaXRsZSIsImVkaXRUaXRsZSIsInZpZXdUaXRsZSIsInVzZVNraWxsIiwiaW5mb1Rvb2x0aXAiLCJzaGFyZWRDcmVhdGVkQnkiLCJuYW1lTGFiZWwiLCJuYW1lUGxhY2Vob2xkZXIiLCJkZXNjcmlwdGlvbkxhYmVsIiwiZGVzY3JpcHRpb25QbGFjZWhvbGRlciIsImluc3RydWN0aW9uc0xhYmVsIiwic2hhcmVXaXRoQ29tcGFueSIsImxhc3RVcGRhdGVkIiwic2F2ZUFuZFVzZSIsImNvbnRlbnRMYWJlbCIsImNvbnRlbnRQbGFjZWhvbGRlciIsImVtcHR5U3RhdGVUaXRsZSIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbiIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybSIsImVtcHR5U3RhdGVCdXR0b24iLCJzZWFyY2hFbXB0eVN0YXRlVGl0bGUiLCJzZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb24iLCJjcmVhdGVTdWNjZXNzIiwiY3JlYXRlRXJyb3IiLCJ1cGRhdGVTdWNjZXNzIiwidXBkYXRlRXJyb3IiLCJkZWxldGVTdWNjZXNzIiwiZGVsZXRlRXJyb3IiLCJzbmFja2JhciIsImRlbGV0ZUNoYXQiLCJzdWNjZXNzIiwicmVuYW1lZENoYXQiLCJsb2FkTW9yZUFnZW50cyIsImFwcHJvdmFsQm94IiwidW50aXRsZWRBZ2VudCIsImFjdGlvbnMiLCJjcmVhdGVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Byb2plY3QiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsImNyZWF0ZV9sYWJlbHMiLCJ1cGRhdGVfdGFza190eXBlIiwidXBkYXRlX2VzdGltYXRlZF9ob3VycyIsInVwZGF0ZV9kZWxpdmVyYWJsZSIsImNyZWF0ZV9ob3VyIiwiY3JlYXRlX2NoZWNrbGlzdCIsImNyZWF0ZV9jaGVja2xpc3RfaXRlbSIsImNsb25lX3Rhc2siLCJnZXRfdGFza19kYXRlX2hvdXJzIiwiY29uZmlndXJlX2FnZW50X2FjY2VzcyIsInNlbmRfdGFza19tZXNzYWdlIiwiZGVsZXRlX2NoZWNrbGlzdF9pdGVtIiwicmVtb3ZlX3Rhc2tfdHlwZSIsInJlbW92ZV90YXNrX2xhYmVsIiwiY291bnRfZGVsaXZlcmFibGUiLCJjcmVhdGVfcmV3b3JrIiwidXBkYXRlX3Jld29yayIsImRlbGV0ZV9hZ2VudCIsInVua25vd24iLCJzcGVjaWFsIiwiY3JlYXRlUmV3b3JrIiwidXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbiIsImZpZWxkcyIsIm5hbWUiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsImlucHV0X3BsYWNlaG9sZGVyIiwidXNlcl9wcm9tcHQiLCJsYW5ndWFnZSIsInByb3ZpZGVyIiwibW9kZWxfbmFtZSIsImFwaV9rZXkiLCJhcHByb3ZlIiwiZGVueSIsIm1hbnVhbEFwcHJvdmFsV2FybmluZyIsInN0YXR1cyIsImFwcHJvdmVkIiwiZGVuaWVkIiwiY2hpcExsbSIsImNsaWVudFNlbGVjdG9yIiwiYWJtQWdlbnQiLCJsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbiIsImNvbnRpbnVlSW5OZXdDaGF0IiwibGF5b3V0TWVudVRvb2x0aXAiLCJsYXlvdXRTaWRlYmFyIiwibGF5b3V0RnVsbHNjcmVlbiIsImxheW91dEZsb2F0aW5nIiwiYWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJ0aXRsZVRhYiIsInRpdGxlU2VjdGlvbiIsInN1YnRpdGxlU2VjdGlvbiIsImNvclBlcm1pc3Npb25zVGl0bGUiLCJjb3JQZXJtaXNzaW9uc1N1YnRpdGxlIiwidGFza0FjY2Vzc1RpdGxlIiwidGFza0FjY2Vzc0Rlc2NyaXB0aW9uIiwibWNwUGVybWlzc2lvbnNUaXRsZSIsIm1jcFBlcm1pc3Npb25zU3VidGl0bGUiLCJuZXRzdWl0ZUFjY2Vzc1RpdGxlIiwibmV0c3VpdGVBY2Nlc3NEZXNjcmlwdGlvbiIsImNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uIiwiY29ubmVjdG9yQXV0aEZhaWxlZCIsImNvbm5lY3RvckF1dGhJbmNvbXBsZXRlIiwibmV0c3VpdGVBdXRoU2V0dXBSZXF1aXJlZCIsInZpc2liaWxpdHlUaXRsZSIsIndob0NhbkFjY2VzcyIsImFsbENvbXBhbnlUaXRsZSIsImFsbENvbXBhbnlEZXNjcmlwdGlvbiIsImNsaWVudFRpdGxlIiwiY2xpZW50RGVzY3JpcHRpb24iLCJvd25UaXRsZSIsIm93bkRlc2NyaXB0aW9uIiwiY2xpZW50c1NlbGVjdGVkIiwic2VhcmNoRXJyb3IiLCJzZWFyY2hFbXB0eSIsInNlYXJjaEluaXRpYWwiLCJjbGllbnRJbmFjdGl2ZSIsImNsaWVudERlbGV0ZWRUb29sdGlwIiwiY2xpZW50RGVsZXRlZCIsInByb2plY3RTZWxlY3RvciIsImxhYmVsUHJvamVjdCIsInJlY2VudFByb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2ZyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdDbG9zZScsXG4gIG1pbmltaXplOiAnUsOpZHVpcmUnLFxuICBob3dXb3JrczogJ0hvdyBkb2VzIGl0IHdvcms/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZCcsXG4gIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICBnb0JhY2s6ICdHbyBiYWNrIHRvIHRoZSBzdGFydCcsXG4gIGNvcHk6ICdDb3B5JyxcbiAgY29waWVkOiAnQ29waWVkJyxcbiAgc2F2ZWQ6ICdTYXZlZCcsXG4gIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gIHNhdmU6ICdTYXZlJyxcbiAgY2FuY2VsOiAnQ2FuY2VsJyxcbn1cblxuY29uc3QgZXJyb3IgPSB7XG4gIHRpdGxlOiBcIlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGVcIixcbiAgZGVzY3JpcHRpb246ICdOb3VzIHJlbmNvbnRyb25zIGFjdHVlbGxlbWVudCBxdWVscXVlcyBwcm9ibMOobWVzLiBWZXVpbGxleiByw6llc3NheWVyIGRhbnMgcXVlbHF1ZXMgbWludXRlcy4nLFxuICB0cnlBZ2FpbjogJ1LDqWVzc2F5ZXInLFxufVxuXG5jb25zdCBnZW5lcmljU2VjdGlvbiA9IHtcbiAgZXJyb3IsXG4gIGdsb2JhbHMsXG59XG5cbmNvbnN0IHByb2plY3RTdW1tYXJ5U2VjdGlvbiA9IHtcbiAgcmVzdW1lOiAnUmVzdW1lJyxcbiAgaGVsbG86ICdIaSwge3tuYW1lfX0hJyxcbiAgd2VsY29tZTogXCJJJ20gTUFJQSwgeW91ciBhc3Npc3RhbnQgYXQgQ09SXCIsXG5cbiAgZmVlZGJhY2s6IHtcbiAgICB0aHVtYnNVcDogJ0l0IHdhcyBoZWxwZnVsJyxcbiAgICB0aHVtYnNEb3duOiBcIkl0IHdhc24ndCBoZWxwZnVsXCIsXG4gICAgc291cmNlczogJ1NvdXJjZXMnLFxuICB9LFxuXG4gIGNvbmZpZzoge1xuICAgIHByb2plY3RTdW1tYXJ5OiAnU3VtbWFyaXplIHByb2plY3QnLFxuICAgIHNlbGVjdFByb2plY3Q6ICdTZWxlY3QgcHJvamVjdCcsXG4gICAgY29uZmlndXJlUmVzdW1lOiAnQWR2YW5jZWQgc2V0dGluZ3MnLFxuICAgIGdlbmVyYXRpbmdSZXN1bWU6ICdHZW5lcmF0aW5nIHN1bW1hcnknLFxuICAgIGdlbmVyYXRlUmVzdW1lOiAnR2VuZXJhdGUnLFxuICAgIGhpZGVDb25maWc6ICdIaWRlIHNldHRpbmdzJyxcbiAgfSxcblxuICBjb25maWd1cmVTZXR0aW5nczoge1xuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuR0VORVJBTF9TVEFUVVNdOiAnRGF0ZXMgYW5kIGRlYWRsaW5lcycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5JTkNPTUVfQ09TVFNdOiAnUHJvZml0YWJpbGl0eScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5USU1FX0hPVVJTXTogJ0VzdGltYXRlZCBob3VycyBhbmQgdXNhZ2UnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuVEFTS1NfUFJPR1JFU1NdOiAnVGFza3MgYW5kIHByb2dyZXNzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlJFV09SS1NdOiAnUmV3b3JrJyxcbiAgfSxcbn1cblxuY29uc3QgaG9tZU1lbnUgPSB7XG4gIHByb2plY3RTdW1tYXJ5OiB7XG4gICAgdGl0bGU6ICdSw6lzdW3DqSBkdSBwcm9qZXQnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkfDqW7DqXJleiBkZXMgcmFwcG9ydHMgYXZlYyBsJ0lBIMOgIHBhcnRpciBkZSB2b3RyZSBwcm9qZXRcIixcbiAgfSxcbiAgZmFxOiB7XG4gICAgc3RhcnRUaXRsZTogJ1ZvdXMgcG91dmV6IGNvbW1lbmNlciBwYXIuLi4nLFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHJld29ya3M6ICdSZXdvcmsnLFxuICAgIH0sXG4gIH0sXG4gIGZ1YToge1xuICAgIHRpdGxlOiAnQWN0aW9ucyBmcsOpcXVlbnRlcycsXG4gICAgbmV3QmFkZ2U6ICdOb3V2ZWF1JyxcbiAgICBlcnJvcjpcbiAgICAgICdPdXBzISBOb3VzIGF2b25zIGV1IHVuIHByb2Jsw6htZSBwb3VyIGNoYXJnZXIgbGVzIGFjdGlvbnMgZnLDqXF1ZW50ZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIH0sXG4gIHJlY2VudENvbnRleHRzOiB7XG4gICAgdGl0bGU6ICdDaG9pc2lzc2V6IHVuIGNvbnRleHRlIHLDqWNlbnQgcG91ciB1bmUgcsOpcG9uc2UgcGx1cyBwcsOpY2lzZSA6JyxcbiAgICB0eXBlczoge1xuICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgIHByb2plY3Q6ICdQcm9qZXQnLFxuICAgICAgdGFzazogJ1TDomNoZScsXG4gICAgfSxcbiAgfSxcbiAgY29udGV4dEhvbWU6IHtcbiAgICBncmVldGluZzogJ0JvbmpvdXIsIHt7bmFtZX19IPCfkYsnLFxuICAgIHN1YnRpdGxlOlxuICAgICAgJ0plIHN1aXMgTUFJQSwgdm90cmUgYXNzaXN0YW50ZSBwb3VyIGxlcyB0w6JjaGVzLCBsZXMgcHJvamV0cyBldCBsZXMgY2xpZW50cy5cXG5PbiByZXByZW5kIHF1ZWxxdWUgY2hvc2UgZGUgcsOpY2VudCA/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcjogJ0plIHN1aXMgTUFJQSwgdm90cmUgYXNzaXN0YW50ZSBwb3VyIGxlcyB0w6JjaGVzLiBPbiByZXByZW5kIHF1ZWxxdWUgY2hvc2UgZGUgcsOpY2VudCA/JyxcbiAgICBzdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VyczogJ1NhaXNpc3NleiB2b3MgaGV1cmVzIG91IGTDqW1hcnJleiB1biBjaGF0IHN1ciB1bmUgdMOiY2hlLicsXG4gICAgc3VidGl0bGVNYW5hZ2VyV2l0aEhvdXJzOiAnUGFyIG/DuSB2b3VsZXotdm91cyBjb21tZW5jZXIgPycsXG4gICAgaG91cnNTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ1NhaXNpciBkZXMgaGV1cmVzJyxcbiAgICB9LFxuICAgIHJlY2VudFRhc2tzU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdDb25zdWx0ZXIgdW5lIHTDomNoZScsXG4gICAgICBzdWJ0aXRsZTogJ0Nob2lzaXNzZXogdW5lIHTDomNoZSByw6ljZW50ZSBwb3VyIGzigJl1dGlsaXNlciBjb21tZSBjb250ZXh0ZS4nLFxuICAgIH0sXG4gICAgcmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdPdSByZXByZW5leiBxdWVscXVlIGNob3NlIGRlIHLDqWNlbnQnLFxuICAgICAgc3VidGl0bGU6ICdDaG9pc2lzc2V6IHVuZSB0w6JjaGUsIHVuIHByb2pldCBvdSB1biBjbGllbnQgY29tbWUgY29udGV4dGUnLFxuICAgIH0sXG4gICAgY29udGV4dEdyZWV0aW5nOiB7XG4gICAgICBwcm9qZWN0OiAnUXVlIHZvdWxlei12b3VzIGFuYWx5c2VyID8gSGV1cmVzLCBlc3RpbWF0aW9ucywgcmVwcmlzZXMgPyDDgCB2b3VzIGRlIGNob2lzaXIgIScsXG4gICAgICB0YXNrOiBcIkplIHN1aXMgbMOgIHBvdXIgdm91cyBhaWRlciBhdmVjIGNldHRlIHTDomNoZS4gVXRpbGlzZXogbCd1bmUgZGVzIGFjdGlvbnMgcG91ciBjb21tZW5jZXIuXCIsXG4gICAgICBjbGllbnQ6ICdRdWUgdm91bGV6LXZvdXMgYW5hbHlzZXIgPyBSZW50YWJpbGl0w6ksIGF2YW5jw6llcywgZGVhZGxpbmVzID8gw4Agdm91cyBkZSBjaG9pc2lyICEnLFxuICAgIH0sXG4gIH0sXG4gIHBsYW5uZXJIb21lOiB7XG4gICAgdGl0bGU6ICdDb21tZW7Dp29ucyBwYXIgc2Fpc2lyIHZvcyBoZXVyZXMnLFxuICAgIHN1YnRpdGxlOiAnUGFyIG/DuSBjb21tZW5jZS10LW9uID8nLFxuICB9LFxuICBhY3Rpb246IHtcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0YXNrczogJ0FjdGlvbnMgc3VyIGxlcyB0w6JjaGVzJyxcbiAgICAgIGNvbGxhYm9yYXRvcnM6ICdDb2xsYWJvcmF0ZXVycyBldCByZXNwb25zYWJsZXMnLFxuICAgICAgbGFiZWxzOiAnw4l0aXF1ZXR0ZXMgZXQgdHlwZXMnLFxuICAgICAgY2hlY2tsaXN0czogJ0NoZWNrbGlzdHMnLFxuICAgICAgZGVsaXZlcmFibGVzOiAnTGl2cmFibGVzJyxcbiAgICAgIHJld29ya3M6ICdSZXByaXNlcycsXG4gICAgICBob3VyczogJ1NhaXNpZSBkZXMgaGV1cmVzJyxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkQnk6ICdDcmVhdGVkIGJ5JyxcbiAgdGFza0dyZWV0aW5nOiBcIkplIHN1aXMgbMOgIHBvdXIgdm91cyBhaWRlciBhdmVjIGNldHRlIHTDomNoZS4gVXRpbGlzZXogbCd1bmUgZGVzIGFjdGlvbnMgcG91ciBjb21tZW5jZXIuXCIsXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ1RyYW5zZm9ybWV6IGxlcyBwcm9jZXNzdXMgcsOpcMOpdGl0aWZzIGVuIGFnZW50cyBpbnRlbGxpZ2VudHMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3LDqWV6IGRlcyBhZ2VudHMgcXVpIGFuYWx5c2VudCBldCBnw6luw6hyZW50IGR1IGNvbnRlbnUgc2Vsb24gdm9zIGJlc29pbnMuJyxcbiAgICBjcmVhdGVNYW51YWxBZ2VudDogJ0Nyw6llciB1biBhZ2VudCBtYW51ZWxsZW1lbnQnLFxuICAgIGJhZGdlTmV3OiAnTm91dmVhdScsXG4gICAgYnJpZWZDYXJkOiB7XG4gICAgICB0aXRsZTogJ0FnZW50IHNww6ljaWFsaXN0ZSBlbiBicmllZicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Nyw6lleiBldCBhbcOpbGlvcmV6IGRlcyBicmllZnMgcG91ciBxdeKAmWlscyBzb2llbnQgcHLDqnRzIMOgIMOqdHJlIHV0aWxpc8OpcyBkYW5zIGRlcyB0w6JjaGVzLicsXG4gICAgICBwcm9tcHQ6ICdKZSB2ZXV4IGNyw6llciB1biBhZ2VudCBzcMOpY2lhbGlzdGUgZW4gYnJpZWYuJyxcbiAgICB9LFxuICAgIGNvbWluZ1Nvb25DYXJkOiB7XG4gICAgICB0aXRsZTogJ0JpZW50w7R0IGRpc3BvbmlibGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdOb3VzIHRyYXZhaWxsb25zIHBvdXIgdm91cyBwcm9wb3NlciBkYXZhbnRhZ2UgZOKAmWFnZW50cycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGNvbnRleHRNZW50aW9uOiB7XG4gICAgICBrZXlib2FyZEhpbnQ6ICdOYXZpZ2F0aW9uIGVudHJlIGxlcyBvbmdsZXRzIDogQCwgQEDigKYgZGFucyBs4oCZb3JkcmUuIEF1c3NpIEFsdC9DbWQgKyDihpAv4oaSJyxcbiAgICAgIHJlY2VudHNUaXRsZTogJ1LDqWNlbnRzJyxcbiAgICAgIG1lOiAnTW9pJyxcbiAgICAgIHRhYnM6IHtcbiAgICAgICAgY2xpZW50OiAnQ2xpZW50JyxcbiAgICAgICAgcHJvamVjdDogJ1Byb2pldCcsXG4gICAgICAgIHRhc2s6ICdUw6JjaGUnLFxuICAgICAgICB1c2VyOiAnVXRpbGlzYXRldXInLFxuICAgICAgICBtY3A6ICdDb25uZWN0ZXVycycsXG4gICAgICAgIHNraWxsOiAnQ29tcMOpdGVuY2VzJyxcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiAnUmVjaGVyY2hlLi4uJyxcbiAgICAgIGVycm9yOiAnVW4gcHJvYmzDqG1lIGVzdCBzdXJ2ZW51LiBSw6llc3NheWV6LicsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnQ29tbWVuY2V6IMOgIMOpY3JpcmUgcG91ciByZWNoZXJjaGVyJyxcbiAgICAgICAgd2l0aFF1ZXJ5OiAnQXVjdW4gcsOpc3VsdGF0IHBvdXIgXCJ7e3F1ZXJ5fX1cIicsXG4gICAgICB9LFxuICAgICAgY291bnRlcnM6IHtcbiAgICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICAgICAgdGFza3M6ICd0w6JjaGVzJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb250ZXh0UGluOiB7XG4gICAgICBhZGRDb250ZXh0OiAnQ29udGV4dGUgZ2xvYmFsJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnUmVjaGVyY2hlciB1biBjb250ZXh0ZeKApicsXG4gICAgICByZW1vdmU6ICdSZXRpcmVyIGxlIGNvbnRleHRlJyxcbiAgICB9LFxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ0JvbmpvdXIsIHt7bmFtZX19IScsXG4gICAgZGVzY3JpcHRpb246IFwiSmUgc3VpcyBNQUlBLCB0b24gYXNzaXN0YW50ZSwgZXQgamUgc3VpcyBsw6AgcG91ciB0J2FpZGVyIGF2ZWMgdGVzIHF1ZXN0aW9ucy5cIixcbiAgICBuZXdDaGF0OiAnTm91dmVhdSBjaGF0JyxcbiAgICBnZW5lcmF0aW5nOiAnR8OpbsOpcmF0aW9uIGRlIGxhIHLDqXBvbnNlJyxcbiAgICBoaXN0b3J5OiB7XG4gICAgICB0b29sdGlwOiAnSGlzdG9yaXF1ZScsXG4gICAgICB0aXRsZTogJ0hpc3RvcmlxdWUgdmlkZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0F1Y3VuZSBjb252ZXJzYXRpb24gdHJvdXbDqWUnLFxuICAgICAgaXRlbToge1xuICAgICAgICBkYXRlOiAnRGVybmnDqHJlIG1pc2Ugw6Agam91ciB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBjb252ZXJzYXRpb25zJyxcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHtcbiAgICAgIG1haWE6ICdNQUlBJyxcbiAgICAgIGFnZW50Q3VzdG9tOiAnQ3VzdG9tIGFnZW50cycsXG4gICAgICBob3dDcmVhdGVBZ2VudDogJ0hvdyB0byBjcmVhdGUgYW4gYWdlbnQ/JyxcbiAgICAgIHRvb2x0aXA6ICdIb3cgZG9lcyBpdCB3b3JrPycsXG4gICAgfSxcbiAgICBxYToge1xuICAgICAgdGl0bGU6ICdRdWVzdGlvbnMgRnLDqXF1ZW1tZW50IFBvc8OpZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVlbGxlIGVzdCBsYSByZW50YWJpbGl0w6kgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWVsIGVzdCBsZSBwcm9ncsOocyBkZSBjZSBwcm9qZXQgPycsXG4gICAgICAgIHRhcmVhc19wcm95ZWN0bzogJ1F1ZWxsZXMgc29udCBsZXMgdMOiY2hlcyDDoCB2ZW5pciDDoCB2ZW5pciA/JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhdHRhY2htZW50Q2FyZDoge1xuICAgICAgZG93bmxvYWQ6ICdUw6lsw6ljaGFyZ2VyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBjaGF0OiB7XG4gICAgICBnZW5lcmF0aW5nOiAnQW5hbHlzZSBkdSBtZXNzYWdlJyxcbiAgICAgIGdlbmVyYXRpbmdBdHRhY2htZW50OiBcIkFuYWx5c2UgZGUgbCdhdHRhY2hlbWVudFwiLFxuICAgICAgc3VnZ2VzdGlvbnNUaXRsZTogJ1LDqXBvbnNlcyBzdWdnw6lyw6llcycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZTogJ8OJdGFwZSBzdWl2YW50ZScsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdDogJ0TDqW1hcnJlciB1bmUgY29udmVyc2F0aW9uIGF2ZWMgbGUgbm91dmVsIGFnZW50JyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlOiAnVMOpbMOpdmVyc2VyIGRlcyBmaWNoaWVycyBkYW5zIGxhIGJhc2UgZGUgY29ubmFpc3NhbmNlcycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvcjogXCJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbCdhZ2VudC4gVmV1aWxsZXogcsOpZXNzYXllci5cIixcbiAgICAgIGV4ZWN1dGluZ0FjdGlvbjogXCJFeMOpY3V0aW9uIGRlIGwnYWN0aW9uXCIsXG4gICAgICBwcm9jZXNzaW5nOiAnVHJhaXRlbWVudCBlbiBjb3VycycsXG4gICAgICBhY3Rpdml0eToge1xuICAgICAgICBnZW5lcmF0aW5nOiB7XG4gICAgICAgICAgcHJlcGFyaW5nOiAnUHLDqXBhcmF0aW9uIGRlIHZvdHJlIHLDqXBvbnNlJyxcbiAgICAgICAgICBjb25zaWRlcmluZzogJ0FuYWx5c2UgZGUgdm90cmUgcXVlc3Rpb24nLFxuICAgICAgICAgIGFsbW9zdFJlYWR5OiBcIkTDqWZpbml0aW9uIGRlIGwnYXBwcm9jaGVcIixcbiAgICAgICAgfSxcbiAgICAgICAgdGhpbmtpbmc6IHtcbiAgICAgICAgICBhbmFseXppbmc6ICdBbmFseXNlIGRlIHZvdHJlIHF1ZXN0aW9uJyxcbiAgICAgICAgICByZXZpZXdpbmc6ICdFeGFtZW4gZHUgY29udGV4dGUnLFxuICAgICAgICAgIHBsYW5uaW5nOiAnU3RydWN0dXJhdGlvbiBkZSBsYSByw6lwb25zZScsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDoge1xuICAgICAgICAgIHNjYW5uaW5nOiAnUmVjaGVyY2hlIHN1ciBsZSB3ZWInLFxuICAgICAgICAgIHN1bW1hcml6aW5nOiAnQW5hbHlzZSBkZXMgcsOpc3VsdGF0cycsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZXBTZWFyY2g6IHtcbiAgICAgICAgICBleHBsb3Jpbmc6ICdFeHBsb3JhdGlvbiBkZXMgc291cmNlcycsXG4gICAgICAgICAgY3Jvc3NDaGVja2luZzogJ1bDqXJpZmljYXRpb24gZGVzIGluZm9ybWF0aW9ucycsXG4gICAgICAgIH0sXG4gICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICByZWFkaW5nOiAnTGVjdHVyZSBkZSBsYSBwacOoY2Ugam9pbnRlJyxcbiAgICAgICAgICBleHRyYWN0aW5nOiAnRXh0cmFjdGlvbiBkZXMgw6lsw6ltZW50cyBwZXJ0aW5lbnRzJyxcbiAgICAgICAgICByZWFkaW5nUGx1cmFsOiAnTGVjdHVyZSBkZXMgcGnDqGNlcyBqb2ludGVzJyxcbiAgICAgICAgICBleHRyYWN0aW5nUGx1cmFsOiAnRXh0cmFjdGlvbiBkZXMgw6lsw6ltZW50cyBwZXJ0aW5lbnRzJyxcbiAgICAgICAgfSxcbiAgICAgICAgd3JpdGluZzoge1xuICAgICAgICAgIGNvbXBvc2luZzogJ1LDqWRhY3Rpb24gZGUgbGEgcsOpcG9uc2UnLFxuICAgICAgICB9LFxuICAgICAgICBkeW5hbWljQ29udGV4dFRvb2x0aXA6ICdDZSBjb250ZXh0ZSBhIMOpdMOpIGfDqW7DqXLDqSBkeW5hbWlxdWVtZW50IGV0IHBldXQgw6l2b2x1ZXIgYXUgZmlsIGRlIGxhIGNvbnZlcnNhdGlvbi4nLFxuICAgICAgICBjcmVhdGluZ1Rhc2s6ICdDcsOpYXRpb24gZGUgdMOiY2hlJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrc0JhdGNoOiAnQ3LDqWF0aW9uIGRlIHTDomNoZXMnLFxuICAgICAgICBjcmVhdGluZ0FnZW50OiBcIkNyw6lhdGlvbiBkJ2FnZW50XCIsXG4gICAgICAgIGVkaXRpbmdBZ2VudDogXCJNb2RpZmljYXRpb24gZGUgbCdhZ2VudFwiLFxuICAgICAgICBlZGl0aW5nVGFzazogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGUnLFxuICAgICAgICBlZGl0aW5nVGFza3NCYXRjaDogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrOiAnU3VwcHJlc3Npb24gZGUgdMOiY2hlJyxcbiAgICAgICAgZGVsZXRpbmdUYXNrc0JhdGNoOiAnU3VwcHJlc3Npb24gZGUgdMOiY2hlcycsXG4gICAgICAgIGFzc2lnbmluZ1VzZXI6IFwiQXR0cmlidXRpb24gZCd1dGlsaXNhdGV1clwiLFxuICAgICAgICB1bmFzc2lnbmluZ1VzZXI6IFwiUmV0cmFpdCBkJ3V0aWxpc2F0ZXVyXCIsXG4gICAgICAgIGFzc2lnbmluZ0xhYmVsOiBcIkF0dHJpYnV0aW9uIGQnw6l0aXF1ZXR0ZVwiLFxuICAgICAgICB1cGRhdGluZ1Rhc2tUeXBlOiAnTWlzZSDDoCBqb3VyIGR1IHR5cGUgZGUgdMOiY2hlJyxcbiAgICAgICAgdXBkYXRpbmdFc3RpbWF0ZWRIb3VyczogJ01pc2Ugw6Agam91ciBkZXMgaGV1cmVzIGVzdGltw6llcycsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGU6ICdNaXNlIMOgIGpvdXIgZHUgbGl2cmFibGUnLFxuICAgICAgICBsb2dnaW5nSG91cnM6IFwiU2Fpc2llIGQnaGV1cmVzXCIsXG4gICAgICAgIGNyZWF0aW5nQ2hlY2tsaXN0OiAnQ3LDqWF0aW9uIGRlIGNoZWNrbGlzdCcsXG4gICAgICAgIGNyZWF0aW5nTGFiZWw6IFwiQ3LDqWF0aW9uIGRlIGwnw6l0aXF1ZXR0ZVwiLFxuICAgICAgICBlZGl0aW5nUHJvamVjdDogJ01vZGlmaWNhdGlvbiBkdSBwcm9qZXQnLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdEl0ZW06IFwiQWpvdXQgZCd1biDDqWzDqW1lbnQgw6AgbGEgY2hlY2tsaXN0XCIsXG4gICAgICAgIHF1ZXJ5aW5nSG91cnM6ICdDb25zdWx0YXRpb24gZGVzIGhldXJlcyBwYXIgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyaW5nQWdlbnRBY2Nlc3M6IFwiTW9kaWZpY2F0aW9uIGRlIGxhIHZpc2liaWxpdMOpIGRlIGwnYWdlbnRcIixcbiAgICAgICAgc2VuZGluZ1Rhc2tNZXNzYWdlOiBcIkVudm9pIGQndW4gbWVzc2FnZSBzdXIgbGEgdMOiY2hlXCIsXG4gICAgICAgIGRlbGV0aW5nQ2hlY2tsaXN0SXRlbTogXCJTdXBwcmVzc2lvbiBkJ3VuIMOpbMOpbWVudCBkZSBsYSBjaGVja2xpc3RcIixcbiAgICAgICAgcmVtb3ZpbmdUYXNrVHlwZTogJ1N1cHByZXNzaW9uIGR1IHR5cGUgZGUgdMOiY2hlJyxcbiAgICAgICAgcmVtb3ZpbmdMYWJlbDogXCJTdXBwcmVzc2lvbiBkZSBsJ8OpdGlxdWV0dGVcIixcbiAgICAgICAgdXBkYXRpbmdEZWxpdmVyYWJsZUNvdW50OiAnTWlzZSDDoCBqb3VyIGR1IGNvbXB0ZXVyIGRlIGxpdnJhYmxlcycsXG4gICAgICAgIGNyZWF0aW5nUmV3b3JrOiBcIkNyw6lhdGlvbiBkJ3VuZSByZXByaXNlXCIsXG4gICAgICAgIHVwZGF0aW5nUmV3b3JrOiAnTWlzZSDDoCBqb3VyIGRlIGxhIHJlcHJpc2UnLFxuICAgICAgICBnZW5lcmF0aW5nRmlsZTogJ0fDqW7DqXJhdGlvbiBkdSBmaWNoaWVyJyxcbiAgICAgICAgcmVzdW1pbmdBY3Rpb246IFwiRXjDqWN1dGlvbiBkZSBsJ2FjdGlvbiBhcHByb3V2w6llXCIsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ01vcmU6ICdDaGFyZ2VtZW50IGRlcyBtZXNzYWdlcycsXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiQ29tbWVudCBwdWlzLWplIHQnYWlkZXIgYXVqb3VyZCdodWkgP1wiLFxuICAgICAgICBjb3JBY2Nlc3NMYWJlbDogJ0FjY8OocyDDoCBDT1InLFxuICAgICAgICBjb3JBY2Nlc3NUb29sdGlwOiAnQWNjw6hzIGF1eCBkb25uw6llcyBDT1InLFxuICAgICAgICBvcmNoZXN0cmF0b3JQbGFjZWhvbGRlcjogJ0RlbWFuZGV6IMOgIE1haWEsIEAgcG91ciBtZW50aW9ubmVyIG91IC8gcG91ciBsZXMgYWN0aW9ucyByYXBpZGVzJyxcbiAgICAgIH0sXG4gICAgICBlcnJvcjogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgZ8OpbsOpcmF0aW9uIGRlIHZvdHJlIHLDqXBvbnNlLCB2ZXVpbGxleiByw6llc3NheWVyLicsXG4gICAgICByZXRyeTogJ1LDqWVzc2F5ZXInLFxuICAgICAgZXJyb3JBY2Nlc3NEZW5pZWQ6XG4gICAgICAgIFwiWW91IGRvbid0IGhhdmUgYWNjZXNzIHRvIGludGVyYWN0IHdpdGggdGhpcyBhZ2VudC4gSXQgaXMgcG9zc2libGUgdGhhdCB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3MgaGF2ZSBjaGFuZ2VkLiBQbGVhc2UgY29udGFjdCB0aGUgcGVyc29uIGluIHlvdXIgb3JnYW5pemF0aW9uIHdobyBtYW5hZ2VzIGFnZW50cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIixcbiAgICAgIGVycm9yUHJvbXB0VG9vTG9uZzpcbiAgICAgICAgJ1ZvdXMgYXZleiBkw6lwYXNzw6kgbGEgbGltaXRlIGRlIGNvbnRleHRlIHt7dXNlZH19IHRva2Vucy4gVmV1aWxsZXogcsOpZXNzYXllciBvdSBjb250aW51ZXIgZGFucyB1biBhdXRyZSBjaGF0JyxcbiAgICAgIGNoYW5nZVByb2plY3Q6XG4gICAgICAgIFwiSidhaSBkw6l0ZWN0w6kgcXVlIHZvdXMgc291aGFpdGV6IGNoYW5nZXIgZGUgUHJvamV0LlxcblxcbioqU8OpbGVjdGlvbm5leiBsZSBwcm9qZXQgcG91ciBjb250aW51ZXIgOioqXCIsXG4gICAgICBzZWFyY2hXZWI6ICdTZWFyY2ggdGhlIHdlYicsXG4gICAgICBkZWVwU2VhcmNoOiAnSW4tZGVwdGggcmVzZWFyY2gnLFxuICAgICAgYXR0YWNoRmlsZTogJ0F0dGFjaCBmaWxlJyxcbiAgICAgIHBsdXNNZW51QXR0YWNoOiAnSm9pbmRyZSBkZXMgZmljaGllcnMnLFxuICAgICAgZHJvcEZpbGVzSGVyZTogJ0TDqXBvc2V6IGxlcyBmaWNoaWVycyBpY2knLFxuICAgICAgcGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbjogJ1JlY2hlcmNoZXIgZW4gcHJvZm9uZGV1cicsXG4gICAgICBwbHVzTWVudVF1aWNrQWN0aW9uczogJ0FjdGlvbnMgcmFwaWRlcycsXG4gICAgICBvcGVuUGx1c01lbnVBcmlhOiAnUGnDqGNlcyBqb2ludGVzIGV0IG9wdGlvbnMgZGUgcmVjaGVyY2hlJyxcbiAgICAgIG9wZW5NZW50aW9uQXJpYTogJ01lbnRpb25uZXInLFxuICAgICAgcmVtb3ZlQXR0YWNobWVudEFyaWE6ICdSZXRpcmVyIGxlIGZpY2hpZXInLFxuICAgICAgcmVtb3ZlQWN0aXZlVG9vbEFyaWE6ICdSZXRpcmVyIGxlIG1vZGUgcmVjaGVyY2hlJyxcbiAgICAgIHNlbmQ6ICdTZW5kJyxcbiAgICAgIGxpbWl0RmlsZXM6ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgYXR0YWNobWVudCBsaW1pdCcsXG4gICAgICBzdG9wOiAnU3RvcCBnZW5lcmF0aW5nJyxcbiAgICAgIGNhbmNlbGxlZDogJ1RoZSBzZWFyY2ggaGFzIGJlZW4gY2FuY2VsbGVkLicsXG4gICAgICB0b29NYW55QWN0aXZlU2Vzc2lvbnM6XG4gICAgICAgICdUcm9wIGRlIGNvbnZlcnNhdGlvbnMgc29udCBnw6luw6lyw6llcyBlbiBtw6ptZSB0ZW1wcy4gQXR0ZW5kZXogcXXigJl1bmUgc2UgdGVybWluZSBhdmFudCBk4oCZZW4gZMOpbWFycmVyIHVuZSBhdXRyZS4nLFxuICAgIH0sXG4gICAgZGVsZXRlUXVlc3Rpb25Nb2RhbDoge1xuICAgICAgdGl0bGU6ICdWb3VsZXotdm91cyBzdXBwcmltZXIgY2V0dGUgY29udmVyc2F0aW9uPycsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBkZWxldGVTa2lsbE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1ZvdWxlei12b3VzIHN1cHByaW1lciBjZXR0ZSBza2lsbD8nLFxuICAgICAgZmlyc3RQYXJ0OiAnVm91cyBldGVzIHN1ciBsZSBwb2ludCBkZSBzdXBwcmltZXInLFxuICAgICAgc2Vjb25kUGFydDogJ0NldHRlIGFjdGlvbiBlc3QgaXJyZXZlcnNpYmxlLicsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgfSxcbiAgICBlZGl0UXVlc3Rpb25Nb2RhbDoge1xuICAgICAgbmV3TmFtZTogJ05ldyBuYW1lJyxcbiAgICAgIHRpdGxlOiAnUmVuYW1lIGNvbnZlcnNhdGlvbicsXG4gICAgICByZW5hbWU6ICdSZW5hbWUnLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICAgIG1heExlbmd0aDogJ1lvdSBjYW5ub3QgZW50ZXIgbW9yZSB0aGFuIDE1MCBjaGFyYWN0ZXJzLicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNYXhpbXVtIGF0dGFjaG1lbnRzIGV4Y2VlZGVkLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogXCJZb3UndmUgZXhjZWVkZWQgdGhlIGFsbG93ZWQgZmlsZSBzaXplIGxpbWl0XCIsXG4gICAgICBsaW1pdEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICdZb3UgY2FuIGF0dGFjaCBhIG1heGltdW0gb2YgNSBmaWxlcyBwZXIgbWVzc2FnZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnT25lIG9yIG1vcmUgZmlsZXMgZXhjZWVkIHRoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBieSB0eXBlLiBUaGUgZm9sbG93aW5nIGZpbGVzIGNvdWxkIG5vdCBiZSBhdHRhY2hlZDonLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGxpbWl0OiAnbGltaXQnLFxuICAgICAgc3RvcDogJ0NhbmNlbCBzZWFyY2gnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnU291cmNlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50cycsXG4gICAgICBuZXdBZ2VudDogJ05vdXZlbCBhZ2VudCcsXG4gICAgICBlZGl0OiAnw4lkaXRlcicsXG4gICAgICBtYWlhOiAnKFNww6ljaWFsaXN0ZSBkZSBwcm9qZXQpJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRkIHRvIGZhdm9yaXRlcycsXG4gICAgICByZW1vdmVGYXZvcml0ZTogJ1JlbW92ZSBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3M6ICdBZ2VudCBhZGRlZCB0byBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3M6ICdBZ2VudCByZW1vdmVkIGZyb20gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZEVycm9yOiAnQ291bGQgbm90IHNhdmUgeW91ciBmYXZvcml0ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIH0sXG4gICAgY29udmVyc2F0aW9uczoge1xuICAgICAgdGl0bGU6ICdNZXMgY29udmVyc2F0aW9ucycsXG4gICAgICBhZ2VudHNTZWN0aW9uVGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbWFpYWtlck5hdjogXCJDcsOpYXRldXIgZCdhZ2VudHNcIixcbiAgICAgIG15QWdlbnRzTmF2OiAnTWVzIGFnZW50cycsXG4gICAgICBteVNraWxsc05hdjogJ1NraWxscycsXG4gICAgICBlcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGNvbnZlcnNhdGlvbiBoaXN0b3J5JyxcbiAgICAgIGVtcHR5OiBcIllvdSBoYXZlbid0IHN0YXJ0ZWQgYW55IGNvbnZlcnNhdGlvbnMgeWV0XCIsXG4gICAgICBlbXB0eUxhYmVsOiAnTWVzc2FnZSB3aXRoIGF0dGFjaG1lbnRzJyxcbiAgICAgIHVucmVhZExhYmVsOiAnTm9uIGx1JyxcbiAgICAgIG1pbmltaXplZE9wZW46ICdPdXZyaXIgTUFJQScsXG4gICAgICBtaW5pbWl6ZWRTZWVBbnN3ZXI6ICdWb2lyIGxhIHLDqXBvbnNlJyxcbiAgICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgICAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgICAgIG5ld0NoYXQ6ICdOZXcgY2hhdCcsXG4gICAgICBnZW5lcmF0aW5nOiAnR8OpbsOpcmF0aW9uIGRlIGxhIHLDqXBvbnNlJyxcbiAgICAgIHNlc3Npb25GaW5pc2hlZDogJ3t7dGl0bGV9fSBhIHRlcm1pbsOpIGRlIHLDqXBvbmRyZScsXG4gICAgICBzZXNzaW9uRmluaXNoZWRBcHByb3ZhbDogJ3t7dGl0bGV9fSByZXF1aWVydCB2b3RyZSBhcHByb2JhdGlvbicsXG4gICAgICBzZXNzaW9uRmluaXNoZWRFcnJvcjogJ3t7dGl0bGV9fSBhIHJlbmNvbnRyw6kgdW5lIGVycmV1cicsXG4gICAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3LDqWVyIHVuIGFnZW50JyxcbiAgICAgIG9wZW5NYXJrZXRwbGFjZTogXCJNYXJrZXRwbGFjZSBkJ2FnZW50c1wiLFxuICAgIH0sXG4gICAgbWFya2V0cGxhY2U6IHtcbiAgICAgIGJhY2s6ICdSZXRvdXInLFxuICAgICAgdGl0bGU6ICdJZGVlcyBwb3VyIGNyZWVyIGRlcyBhZ2VudHMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQ2hvaXNpc3NleiB1bmUgc3VnZ2VzdGlvbiBiaWVuIGNvbnN0cnVpdGUgZXQgb3V2cmV6IGwnZWRpdGV1ciBhdmVjIGwnYWdlbnQgZGVqYSBwcmUtcmVtcGxpIHBvdXIgbCdhZGFwdGVyIGEgdm90cmUgY2FzLlwiLFxuICAgICAgbXlBZ2VudHNUaXRsZTogJ01lcyBhZ2VudHMnLFxuICAgICAgbXlBZ2VudHNSZWFkeVRpdGxlOiAnVm9zIGFnZW50cyBzb250IHByZXRzIGEgdm91cyBhaWRlciBhdmVjIGRlcyB0YWNoZXMnLFxuICAgICAgbXlBZ2VudHNEZXNjcmlwdGlvbjogJ1ZvaWNpIHZvcyBhZ2VudHMgY3VzdG9tLiBTZWxlY3Rpb25uZXotZW4gdW4gcG91ciBjb21tZW5jZXIgYSBkaXNjdXRlciBhdmVjIGNlIHByb2ZpbC4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlVGl0bGU6IFwiVm91cyBuJ2F2ZXogcGFzIGVuY29yZSBkJ2FnZW50cyBjcmVlc1wiLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdDbGlxdWV6IHN1ciBsZSBib3V0b24gY2ktZGVzc291cyBwb3VyIGNvbW1lbmNlciBhIGNyZWVyIGRlcyBhZ2VudHMgc3VyIG1lc3VyZS4nLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm06XG4gICAgICAgIFwiTG9yc3F1J3VuZSBwZXJzb25uZSBoYWJpbGl0ZWUgbGVzIGF1cmEgY29uZmlndXJlcywgdm91cyBwb3VycmV6IHkgYWNjZWRlciBkZXB1aXMgaWNpLlwiLFxuICAgICAgbXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uOiAnQ3JlZXIgdW4gYWdlbnQnLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0ludHJvOiAnQWdlbnQgcGVyc29ubmFsaXNlIHByZXQgYSB2b3VzIGFpZGVyIGRhbnMgdm90cmUgZmx1eCBkZSB0cmF2YWlsLicsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrRGVzY3JpcHRpb246ICdDbGlxdWV6IHN1ciB1dGlsaXNlciBhZ2VudCBwb3VyIGRlbWFycmVyIHVuZSBjb252ZXJzYXRpb24gYXZlYyBjZXQgYWdlbnQuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEYXRlOiAnSWwgeSBhIHF1ZWxxdWVzIGpvdXJzJyxcbiAgICAgIG15QWdlbnRzVG9kYXk6IFwiQXVqb3VyZCdodWlcIixcbiAgICAgIG15QWdlbnRzT25lRGF5QWdvOiAnSWwgeSBhIDEgam91cicsXG4gICAgICBteUFnZW50c0RheXNBZ286ICdJbCB5IGEge3tkYXlzfX0gam91cnMnLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6IFwiTWVudSBkJ2FjdGlvbnMgZGUgbCdhZ2VudFwiLFxuICAgICAgdXNlOiAnVXRpbGlzZXInLFxuICAgICAgY3JlYXRlQWdlbnQ6ICdDcmVlciB1biBhZ2VudCBtYW51ZWxsZW1lbnQnLFxuICAgICAgc2VhcmNoQWdlbnRQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXIgdW4gYWdlbnQuLi4nLFxuICAgICAgc2VhcmNoTWluTGVuZ3RoOiAnbWluLiAzIGNhcmFjdMOocmVzJyxcbiAgICAgIHNlYXJjaE5vUmVzdWx0czogJ0F1Y3VuIHLDqXN1bHRhdCB0cm91dsOpLicsXG4gICAgICBzZWFyY2hOb1Jlc3VsdHNTdWJ0aXRsZTogJ0Nyw6lleiB1biBhZ2VudCBJQSBjYXBhYmxlIGRlIHBlbnNlciwgZOKAmWFnaXIgZXQgZOKAmWF1dG9tYXRpc2VyIGxlIHRyYXZhaWwgcG91ciB2b3VzJyxcbiAgICAgIHVzZVRlbXBsYXRlOiAnQ3JlZXIgYSBwYXJ0aXIgZGUgY2V0dGUgaWRlZScsXG4gICAgICB1c2VNeUFnZW50OiAnVXRpbGlzZXIgYWdlbnQnLFxuICAgICAgYmFkZ2VzOiB7XG4gICAgICAgIGJyYW5kaW5nOiAnQnJhbmRpbmcnLFxuICAgICAgICBsaW5rZWRpbjogJ0xpbmtlZEluJyxcbiAgICAgICAgbWFya2V0aW5nOiAnTWFya2V0aW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBteVNraWxsczoge1xuICAgICAgdGl0bGU6ICdTcGVjaWFsaXNleiBNQUlBIGF2ZWMgdm9zIHByb3ByZXMgcmVnbGVzJyxcbiAgICAgIHN1YnRpdGxlOiAnTGVzIHNraWxscyBzb250IGdsb2JhbGVzIDogZWxsZXMgc29udCBkaXNwb25pYmxlcyBwb3VyIHRvdXMgdm9zIGFnZW50cy4nLFxuICAgICAgdGFiTXlTa2lsbHM6ICdNZXMgc2tpbGxzJyxcbiAgICAgIHRhYlNoYXJlZFNraWxsczogJ1NraWxscyBwYXJ0YWdlZXMnLFxuICAgICAgZHJvcGRvd25CdXR0b246ICdTa2lsbHMnLFxuICAgICAgZHJvcGRvd25DcmVhdGU6ICdDcmVlciB1bmUgbm91dmVsbGUgc2tpbGwnLFxuICAgICAgZHJvcGRvd25FbXB0eTogJ0F1Y3VuZSBza2lsbCBwb3VyIGwgaW5zdGFudCcsXG4gICAgICBkcm9wZG93bkVycm9yOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuIFZldWlsbGV6IHJlZXNzYXllci4nLFxuICAgICAgbXlTa2lsbHNEZXNjcmlwdGlvbjogJ0NvbXBldGVuY2VzIGNyZWVlcyBwYXIgdm91cy4nLFxuICAgICAgc2hhcmVkU2tpbGxzRGVzY3JpcHRpb246ICdDb21wZXRlbmNlcyBwYXJ0YWdlZXMgcGFyIGQgYXV0cmVzIG1lbWJyZXMgZGUgdm90cmUgZXF1aXBlLicsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXIgZGVzIGNvbXBldGVuY2VzLi4uJyxcbiAgICAgIGNyZWF0ZU1hbnVhbGx5OiAnQ3JlZXIgbWFudWVsbGVtZW50JyxcbiAgICAgIHZpc2liaWxpdHlPbmx5TWU6ICdNb2kgdW5pcXVlbWVudCcsXG4gICAgICB2aXNpYmlsaXR5RXZlcnlvbmU6ICdWaXNpYmxlIHBvdXIgdG91cycsXG4gICAgICBzaGFyZWRFbXB0eVN0YXRlVGl0bGU6ICdQZXJzb25uZSBuZSB2b3VzIGEgZW5jb3JlIHBhcnRhZ2UgZGUgc2tpbGxzLicsXG4gICAgICBzaGFyZWRFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdMb3JzcXVlIHZvdHJlIGVudHJlcHJpc2UgcGFydGFnZXJhIGRlcyBza2lsbHMsIGVsbGVzIGFwcGFyYWl0cm9udCBpY2kuJyxcbiAgICAgIGNyZWF0ZVNraWxsOiAnQ3JlZXIgdW5lIHNraWxsJyxcbiAgICAgIHByZXZpZXc6ICdBcGVyY3UnLFxuICAgICAgcHJldmlld0VtcHR5OiAnUmllbiBhIHByZXZpc3VhbGlzZXIgcG91ciBsZSBtb21lbnQuJyxcbiAgICAgIHVwbG9hZE1kOiAnSW1wb3J0ZXIgLm1kJyxcbiAgICAgIHVwbG9hZEVycm9yOiAnU2V1bHMgbGVzIGZpY2hpZXJzIC5tZCBzb250IGF1dG9yaXNlcycsXG4gICAgICBjcmVhdGVXaXRoTWFpYTogJ0NyZWVyIGF2ZWMgTWFpYScsXG4gICAgICB3cml0ZUluc3RydWN0aW9uczogJ0VjcmlyZSBsZXMgaW5zdHJ1Y3Rpb25zJyxcbiAgICAgIHVwbG9hZFNraWxsOiAnSW1wb3J0ZXIgdW5lIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlUGxhY2Vob2xkZXI6ICdKZSB2ZXV4IHVuZSBTa2lsbCBwb3VyIGNyZWVyIG1lcyBwcm9qZXRzJyxcbiAgICAgIGdlbmVyYXRlV2l0aE1haWE6ICdDcmVlciBsYSBTa2lsbCBhdmVjIE1haWEnLFxuICAgICAgZ2VuZXJhdGVOZWVkc05hbWU6ICdTYWlzaXNzZXogZCBhYm9yZCB1biBub20gcG91ciBkZWNyaXJlIGxhIHNraWxsJyxcbiAgICAgIGdlbmVyYXRlU3VjY2VzczogJ1NraWxsIGdlbmVyZWUgYXZlYyBNYWlhJyxcbiAgICAgIGdlbmVyYXRlRXJyb3I6ICdMYSBza2lsbCBuIGEgcGFzIHB1IGV0cmUgZ2VuZXJlZS4gVmV1aWxsZXogcmVlc3NheWVyLicsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogXCJNZW51IGQnYWN0aW9ucyBkZSBsYSBza2lsbFwiLFxuICAgICAgZWRpdDogJ01vZGlmaWVyJyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIHNhdmU6ICdFbnJlZ2lzdHJlcicsXG4gICAgICBjbG9zZTogJ0Zlcm1lcicsXG4gICAgICBjcmVhdGVUaXRsZTogJ0NyZWF0aW9uIGRlIHNraWxsJyxcbiAgICAgIGVkaXRUaXRsZTogJ01vZGlmaWVyIGxhIHNraWxsJyxcbiAgICAgIHZpZXdUaXRsZTogJ1NraWxsIHBhcnRhZ2VlJyxcbiAgICAgIHVzZVNraWxsOiAnVXRpbGlzZXIgbGEgc2tpbGwnLFxuICAgICAgaW5mb1Rvb2x0aXA6XG4gICAgICAgIFwiTGVzIHNraWxscyBzb250IGRlcyBpbnN0cnVjdGlvbnMgcXVlIHZvdXMgZG9ubmV6IGEgdW4gYWdlbnQgcG91ciBxdSdpbCByZXNvbHZlIHVuZSB0YWNoZSB0b3Vqb3VycyBkZSBsYSBtZW1lIGZhY29uLiBNZW50aW9ubmV6LWxhIGF2ZWMgIyBkYW5zIGxlIGNoYXQgZXQgbCdhZ2VudCBzdWl2cmEgY2VzIGV0YXBlcy5cIixcbiAgICAgIHNoYXJlZENyZWF0ZWRCeTogJ0NyZWVlIHBhciB7e25hbWV9fScsXG4gICAgICBuYW1lTGFiZWw6ICdOb20nLFxuICAgICAgbmFtZVBsYWNlaG9sZGVyOiAnTm9tIGRlIGxhIHNraWxsJyxcbiAgICAgIGRlc2NyaXB0aW9uTGFiZWw6ICdEZXNjcmlwdGlvbicsXG4gICAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiAnRGVjcml2ZXogYnJpZXZlbWVudCBhIHF1b2kgc2VydCBsYSBza2lsbCcsXG4gICAgICBpbnN0cnVjdGlvbnNMYWJlbDogJ0luc3RydWN0aW9ucycsXG4gICAgICBzaGFyZVdpdGhDb21wYW55OiAnQWN0aXZlciBwb3VyIHRvdXRlIGwgZW50cmVwcmlzZScsXG4gICAgICBjcmVhdGVkQnk6ICdDcmVlIHBhcicsXG4gICAgICBsYXN0VXBkYXRlZDogJ0Rlcm5pZXJlIG1pc2UgYSBqb3VyJyxcbiAgICAgIHNhdmVBbmRVc2U6ICdFbnJlZ2lzdHJlciBldCB1dGlsaXNlciBsYSBza2lsbCcsXG4gICAgICBjb250ZW50TGFiZWw6ICdTa2lsbCcsXG4gICAgICBjb250ZW50UGxhY2Vob2xkZXI6ICdFY3JpdmV6IGxhIHNraWxsLi4uJyxcbiAgICAgIGVtcHR5U3RhdGVUaXRsZTogXCJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIGRlIHNraWxsc1wiLFxuICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQ2xpcXVleiBzdXIgbGUgYm91dG9uIGNpLWRlc3NvdXMgcG91ciBjb21tZW5jZXIgYSBjcmVlciBkZXMgc2tpbGxzIHN1ciBtZXN1cmUuJyxcbiAgICAgIGVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ0xvcnNxdXVuZSBwZXJzb25uZSBoYWJpbGl0ZWUgbGVzIGF1cmEgY29uZmlndXJlZXMsIHZvdXMgcG91cnJleiB5IGFjY2VkZXIgZGVwdWlzIGljaS4nLFxuICAgICAgZW1wdHlTdGF0ZUJ1dHRvbjogJ0NyZWVyIHVuZSBza2lsbCcsXG4gICAgICBzZWFyY2hFbXB0eVN0YXRlVGl0bGU6ICdBdWN1bmUgc2tpbGwgdHJvdXZlZScsXG4gICAgICBzZWFyY2hFbXB0eVN0YXRlRGVzY3JpcHRpb246ICdFc3NheWV6IHVuIGF1dHJlIHRlcm1lIG91IHZlcmlmaWV6IHZvdHJlIHJlY2hlcmNoZS4nLFxuICAgICAgY3JlYXRlU3VjY2VzczogJ1NraWxsIGNyZWVlIGF2ZWMgc3VjY2VzJyxcbiAgICAgIGNyZWF0ZUVycm9yOiBcIkxhIHNraWxsIG4nYSBwYXMgcHUgZXRyZSBjcmVlZS4gVmV1aWxsZXogcmVlc3NheWVyLlwiLFxuICAgICAgdXBkYXRlU3VjY2VzczogJ1NraWxsIG1pc2UgYSBqb3VyIGF2ZWMgc3VjY2VzJyxcbiAgICAgIHVwZGF0ZUVycm9yOiBcIkxhIHNraWxsIG4nYSBwYXMgcHUgZXRyZSBtaXNlIGEgam91ci4gVmV1aWxsZXogcmVlc3NheWVyLlwiLFxuICAgICAgZGVsZXRlU3VjY2VzczogJ1NraWxsIHN1cHByaW1lZSBhdmVjIHN1Y2NlcycsXG4gICAgICBkZWxldGVFcnJvcjogXCJMYSBza2lsbCBuJ2EgcGFzIHB1IGV0cmUgc3VwcHJpbWVlLiBWZXVpbGxleiByZWVzc2F5ZXIuXCIsXG4gICAgfSxcbiAgICBzbmFja2Jhcjoge1xuICAgICAgZGVsZXRlQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ2hhdCBkZWxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgICByZW5hbWVkQ2hhdDoge1xuICAgICAgICBzdWNjZXNzOiAnQ29udmVyc2F0aW9uIHJlbmFtZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICAgIGxvYWRNb3JlQWdlbnRzOiB7XG4gICAgICAgIGVycm9yOiAnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlLCB0cnkgYWdhaW4uJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhcHByb3ZhbEJveDoge1xuICAgICAgdW50aXRsZWRBZ2VudDogJ0FnZW50IHNhbnMgdGl0cmUnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0Nyw6lhdGlvbiBkZSB0w6JjaGUnLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcsOpYXRpb24gZGUgdMOiY2hlcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0Nyw6lhdGlvbiBk4oCZYWdlbnQnLFxuICAgICAgICBlZGl0X2FnZW50OiAnTW9kaWZpY2F0aW9uIGRlIGzigJlhZ2VudCcsXG4gICAgICAgIGVkaXRfcHJvamVjdDogJ01vZGlmaWNhdGlvbiBkdSBwcm9qZXQnLFxuICAgICAgICBlZGl0X3Rhc2s6ICdNb2RpZmljYXRpb24gZGUgdMOiY2hlJyxcbiAgICAgICAgZWRpdF90YXNrc19iYXRjaDogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgZGVsZXRlX3Rhc2s6ICdTdXBwcmVzc2lvbiBkZSB0w6JjaGUnLFxuICAgICAgICBkZWxldGVfdGFza3NfYmF0Y2g6ICdTdXBwcmVzc2lvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBdHRyaWJ1dGlvbiBk4oCZdXRpbGlzYXRldXInLFxuICAgICAgICB0YXNrX3VuYXNzaWduOiAnUmV0cmFpdCBk4oCZdXRpbGlzYXRldXInLFxuICAgICAgICBhc3NpZ25fdGFza19sYWJlbDogJ0F0dHJpYnV0aW9uIGTigJnDqXRpcXVldHRlJyxcbiAgICAgICAgY3JlYXRlX2xhYmVsczogJ0Nyw6lhdGlvbiBk4oCZw6l0aXF1ZXR0ZScsXG4gICAgICAgIHVwZGF0ZV90YXNrX3R5cGU6ICdNaXNlIMOgIGpvdXIgZHUgdHlwZSBkZSB0w6JjaGUnLFxuICAgICAgICB1cGRhdGVfZXN0aW1hdGVkX2hvdXJzOiAnTWlzZSDDoCBqb3VyIGRlcyBoZXVyZXMgZXN0aW3DqWVzJyxcbiAgICAgICAgdXBkYXRlX2RlbGl2ZXJhYmxlOiAnTWlzZSDDoCBqb3VyIGR1IGxpdnJhYmxlJyxcbiAgICAgICAgY3JlYXRlX2hvdXI6ICdTYWlzaWUgZOKAmWhldXJlcycsXG4gICAgICAgIGNyZWF0ZV9jaGVja2xpc3Q6ICdDcsOpYXRpb24gZGUgY2hlY2tsaXN0JyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdF9pdGVtOiAnQWpvdXQgZOKAmXVuIMOpbMOpbWVudCDDoCBsYSBjaGVja2xpc3QnLFxuICAgICAgICBjbG9uZV90YXNrOiAnRHVwbGlxdWVyIGxhIHTDomNoZScsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdDb25zdWx0YXRpb24gZGVzIGhldXJlcyBwYXIgZGF0ZScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6IFwiTW9kaWZpZXIgbGEgdmlzaWJpbGl0w6kgZGUgbCdhZ2VudFwiLFxuICAgICAgICBzZW5kX3Rhc2tfbWVzc2FnZTogJ0Vudm9pIGTigJl1biBtZXNzYWdlIHN1ciBsYSB0w6JjaGUnLFxuICAgICAgICBkZWxldGVfY2hlY2tsaXN0X2l0ZW06ICdTdXBwcmVzc2lvbiBk4oCZdW4gw6lsw6ltZW50IGRlIGxhIGNoZWNrbGlzdCcsXG4gICAgICAgIHJlbW92ZV90YXNrX3R5cGU6ICdTdXBwcmVzc2lvbiBkdSB0eXBlIGRlIHTDomNoZScsXG4gICAgICAgIHJlbW92ZV90YXNrX2xhYmVsOiAnU3VwcHJlc3Npb24gZGUgbOKAmcOpdGlxdWV0dGUnLFxuICAgICAgICBjb3VudF9kZWxpdmVyYWJsZTogJ01pc2Ugw6Agam91ciBkdSBjb21wdGV1ciBkZSBsaXZyYWJsZXMnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3LDqWF0aW9uIGTigJl1bmUgcmVwcmlzZScsXG4gICAgICAgIHVwZGF0ZV9yZXdvcms6ICdNaXNlIMOgIGpvdXIgZGUgbGEgcmVwcmlzZScsXG4gICAgICAgIGRlbGV0ZV9hZ2VudDogJ1N1cHByZXNzaW9uIGRlIGzigJlhZ2VudCcsXG4gICAgICAgIHVua25vd246ICdBY3Rpb24gaW5jb25udWUnLFxuICAgICAgfSxcbiAgICAgIHNwZWNpYWw6IHtcbiAgICAgICAgY3JlYXRlUmV3b3JrOiB7XG4gICAgICAgICAgdGl0bGU6ICdDcsOpZXIgdW5lIHJlcHJpc2UnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVW5lIGRlbWFuZGUgZGUgcmVwcmlzZSBzZXJhIGNyw6nDqWUgc3VyIGxhIHTDomNoZSBhdmVjIGxlcyBpbmZvcm1hdGlvbnMgY2ktZGVzc291cy4nLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuOiB7XG4gICAgICAgICAgdGl0bGU6ICdNZXR0cmUgw6Agam91ciBs4oCZYXZhbmNlbWVudCBkZXMgbGl2cmFibGVzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0zigJlhdmFuY2VtZW50IGRlcyBzb3VzLWxpdnJhYmxlcyBsacOpcyDDoCBjZXR0ZSB0w6JjaGUgc2VyYSBtaXMgw6Agam91ci4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBuYW1lOiAnTm9tJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHVjdGlvbicsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ1Byb21wdCBwcmluY2lwYWwnLFxuICAgICAgICBsYW5ndWFnZTogJ0xhbmd1ZScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kw6hsZScsXG4gICAgICAgIGFwaV9rZXk6ICdBUEkga2V5JyxcbiAgICAgIH0sXG4gICAgICB0aXRsZTogJ0NvbmZpcm1hdGlvbiByZXF1aXNlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVm90cmUgYXBwcm9iYXRpb24gZXN0IG7DqWNlc3NhaXJlIHBvdXIgZXjDqWN1dGVyIGzigJlhY3Rpb24gc3VpdmFudGUgOicsXG4gICAgICBhcHByb3ZlOiAnQXBwcm91dmVyJyxcbiAgICAgIGRlbnk6ICdSZWZ1c2VyJyxcbiAgICAgIG1hbnVhbEFwcHJvdmFsV2FybmluZzogJ01haWEgYSBkw6l0ZWN0w6kgcXVlIGxhIGRlbWFuZGUgYSDDqXTDqSBhcHByb3V2w6llIG1hbnVlbGxlbWVudCcsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgYXBwcm92ZWQ6ICdEZW1hbmRlIGFwcHJvdXbDqWUnLFxuICAgICAgICBkZW5pZWQ6ICdEZW1hbmRlIHJlZnVzw6llJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjaGlwTGxtOiB7XG4gICAgICB0b29sdGlwOiAnTW9kw6hsZSA6IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb2pldCcsXG4gICAgICBwcm9qZWN0czogJ3Byb2pldHMnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5hYm1BZ2VudF06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbjpcbiAgICAgICdDZXR0ZSBjb252ZXJzYXRpb24gYXBwYXJ0aWVudCDDoCB1biBjb250ZXh0ZSBwcsOpY8OpZGVudC4gVm91cyBwb3V2ZXogY29udGludWVyIGF2ZWMge3tuYW1lfX0gZGFucyB1biBub3V2ZWF1IGNoYXQuJyxcbiAgICBjb250aW51ZUluTmV3Q2hhdDogJ0NvbnRpbnVlciBkYW5zIHVuIG5vdXZlYXUgY2hhdCcsXG4gICAgbGF5b3V0TWVudVRvb2x0aXA6ICdEaXNwb3NpdGlvbiBkdSBjaGF0JyxcbiAgICBsYXlvdXRTaWRlYmFyOiAnQmFycmUgbGF0w6lyYWxlJyxcbiAgICBsYXlvdXRGdWxsc2NyZWVuOiAnUGxlaW4gw6ljcmFuJyxcbiAgICBsYXlvdXRGbG9hdGluZzogJ0ZlbsOqdHJlIGZsb3R0YW50ZScsXG4gICAgYmFjazogJ1JldG91cicsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0Nyw6llciB1biBhZ2VudCcsXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnUGVybWlzc2lvbnMnLFxuICAgICAgdGl0bGVTZWN0aW9uOiBcIlZpc2liaWxpdMOpIGV0IHBlcm1pc3Npb25zIGRlIGwnYWdlbnRcIixcbiAgICAgIHN1YnRpdGxlU2VjdGlvbjogXCJEw6lmaW5pc3NleiBxdWkgcGV1dCB1dGlsaXNlciBjZXQgYWdlbnQgZXQgcydpbCBwZXV0IGFjY8OpZGVyIGF1eCBkb25uw6llcyBDT1IuXCIsXG4gICAgICBjb3JQZXJtaXNzaW9uc1RpdGxlOiBcIlBlcm1pc3Npb25zIGQnYWNjw6hzIGF1eCBkb25uw6llcyBDT1JcIixcbiAgICAgIGNvclBlcm1pc3Npb25zU3VidGl0bGU6ICfDgCBxdW9pIGNldCBhZ2VudCBhLXQtaWwgYWNjw6hzID8nLFxuICAgICAgdGFza0FjY2Vzc1RpdGxlOiAnQWNjw6hzIGF1eCB0w6JjaGVzJyxcbiAgICAgIHRhc2tBY2Nlc3NEZXNjcmlwdGlvbjpcbiAgICAgICAgXCJMJ2FnZW50IHBvdXJyYSBsaXJlLCBjcsOpZXIsIG1vZGlmaWVyIGV0IHN1cHByaW1lciBkZXMgdMOiY2hlcyBzZWxvbiBsZXMgcGVybWlzc2lvbnMgZGUgbCd1dGlsaXNhdGV1ci5cIixcbiAgICAgIG1jcFBlcm1pc3Npb25zVGl0bGU6ICdDb25uZWN0ZXVycyBleHRlcm5lcycsXG4gICAgICBtY3BQZXJtaXNzaW9uc1N1YnRpdGxlOiAnw4AgcXVlbHMgb3V0aWxzIGV4dGVybmVzIGNldCBhZ2VudCBhLXQtaWwgYWNjw6hzID8nLFxuICAgICAgbmV0c3VpdGVBY2Nlc3NUaXRsZTogJ05ldFN1aXRlJyxcbiAgICAgIG5ldHN1aXRlQWNjZXNzRGVzY3JpcHRpb246XG4gICAgICAgIFwiTCdhZ2VudCBwb3VycmEgbGlyZSBldCBtZXR0cmUgw6Agam91ciBsZXMgZW5yZWdpc3RyZW1lbnRzIE5ldFN1aXRlLiBOb3VzIHZvdXMgZGVtYW5kZXJvbnMgZCdhdXRvcmlzZXIgbCdhY2PDqHMgbG9ycyBkZSBsJ2VucmVnaXN0cmVtZW50LlwiLFxuICAgICAgY29ubmVjdG9yQWNjZXNzRGVzY3JpcHRpb246XG4gICAgICAgIFwiTCdhZ2VudCBwb3VycmEgdXRpbGlzZXIge3tuYW1lfX0uIE5vdXMgdm91cyBkZW1hbmRlcm9ucyBkJ2F1dG9yaXNlciBsJ2FjY8OocyBsb3JzIGRlIGwnZW5yZWdpc3RyZW1lbnQuXCIsXG4gICAgICBjb25uZWN0b3JBdXRoRmFpbGVkOiBcIkltcG9zc2libGUgZCdvdXZyaXIgbGEgY29ubmV4aW9uIGR1IGNvbm5lY3RldXIuIFLDqWVzc2F5ZXogb3UgdsOpcmlmaWV6IGxhIGNvbmZpZ3VyYXRpb24gT0F1dGguXCIsXG4gICAgICBjb25uZWN0b3JBdXRoSW5jb21wbGV0ZTogXCJMYSBjb25uZXhpb24gTmV0U3VpdGUgbidlc3QgcGFzIHRlcm1pbsOpZS4gRW5yZWdpc3RyZXogw6Agbm91dmVhdSwgY2xpcXVleiBzdXIgQXV0b3Jpc2VyIGV0IGF0dGVuZGV6IGxhIGZlcm1ldHVyZSBkZSBsYSBmZW7DqnRyZS5cIixcbiAgICAgIG5ldHN1aXRlQXV0aFNldHVwUmVxdWlyZWQ6XG4gICAgICAgIFwiTmV0U3VpdGUgbidlbnJlZ2lzdHJlIHBhcyBsJ2FwcGxpY2F0aW9uIHRvdXQgc2V1bC4gVW4gYWRtaW4gZG9pdCBjcsOpZXIgdW5lIEludGVncmF0aW9uIChQdWJsaWMgQ2xpZW50LCBzY29wZSBBSSBDb25uZWN0b3IsIFJlZGlyZWN0IFVSSSBNQUlBKS4gRW5zdWl0ZSBsZSBsb2dpbiBzJ2FmZmljaGUgZGFucyBsZSBwb3B1cC5cIixcbiAgICAgIHZpc2liaWxpdHlUaXRsZTogXCJWaXNpYmlsaXTDqSBkZSBsJ2FnZW50XCIsXG4gICAgICB3aG9DYW5BY2Nlc3M6ICdRdWkgcGV1dCB1dGlsaXNlciBjZXQgYWdlbnQgPycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6IFwiVG91dGUgbCdlbnRyZXByaXNlXCIsXG4gICAgICBhbGxDb21wYW55RGVzY3JpcHRpb246ICdUb3VzIGxlcyB1dGlsaXNhdGV1cnMgZGUgdm90cmUgb3JnYW5pc2F0aW9uIHBvdXJyb250IHZvaXIgZXQgdXRpbGlzZXIgY2V0IGFnZW50LicsXG4gICAgICBjbGllbnRUaXRsZTogJ1BvdXIgZGVzIGNsaWVudHMgc3DDqWNpZmlxdWVzJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNzb2NpZXogY2V0IGFnZW50IMOgIHVuIG91IHBsdXNpZXVycyBjbGllbnRzLiBUb3VzIGxlcyB1dGlsaXNhdGV1cnMgcG91cnJvbnQgdm9pciDDoCBxdWVscyBjbGllbnRzIGlsIGVzdCBsacOpLicsXG4gICAgICBvd25UaXRsZTogJ01vaSB1bmlxdWVtZW50JyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnQ2V0IGFnZW50IHNlcmEgcHJpdsOpIGV0IG5lIHNlcmEgcGFzIGRpc3BvbmlibGUgcG91ciBsZXMgYXV0cmVzIHV0aWxpc2F0ZXVycy4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50cyBzZWxlY3RlZDonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBsaXN0IG9mIGNsaWVudHMsIHBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy4nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPb3BzISBObyBjbGllbnRzIHdlcmUgZm91bmQgdGhhdCBtYXRjaCB5b3VyIHNlYXJjaC4nLFxuICAgICAgc2VhcmNoSW5pdGlhbDogJ1dyaXRlIGEgd29yZCB0byBzdGFydCB5b3VyIHNlYXJjaCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBjbGllbnQnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdUaGlzIGNsaWVudCBpcyBpbmFjdGl2ZS4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnVGhpcyBjbGllbnQgd2FzIGRlbGV0ZWQuIFdlIHJlY29tbWVuZCByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0LicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50IGRlbGV0ZWQnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIHByb2plY3Qgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIHByb2plY3Qgc28gTUFJQSBjYW4gcmVzcG9uZCBpbiBjb250ZXh0LicsXG4gICAgICBsYWJlbFByb2plY3Q6ICdTRUxFQ1QgUFJPSkVDVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OiAnQ2hhbmdlIHByb2plY3QnLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnQgcHJvamVjdHMnLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnU2VhcmNoIGVycm9yISBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1vbWVudHMuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdObyByZWNlbnQgcHJvamVjdHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdObyBjbGllbnQnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnTm8gdGl0bGUnLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdXaGljaCBjbGllbnQgd291bGQgeW91IGxpa2UgaGVscCB3aXRoPycsXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjdCBhIGNsaWVudCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsQ2xpZW50OiAnU0VMRUNUIENMSUVOVCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBjaGFuZ2VDbGllbnQ6ICdDaGFuZ2UgY2xpZW50JyxcbiAgICAgIHJlY2VudENsaWVudHM6ICdSZWNlbnQgY2xpZW50cycsXG4gICAgICBzZWFyY2hpbmdDbGllbnRzOiAnU2VhcmNoaW5nIHlvdXIgY2xpZW50cy4uLicsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRDbGllbnRzOiAnTm8gcmVjZW50IGNsaWVudHMuIEVudGVyIHRoZSBuYW1lIGluIHRoZSBzZWFyY2ggYmFyIHRvIGdldCByZXN1bHRzLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT29wcyEgdGhlcmUgYXJlIG5vIHJlc3VsdHMgZm9yIHlvdXIgc2VhcmNoJyxcbiAgICAgIHByb2plY3Q6ICdwcm9qZXQnLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRzJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLE9BQU87RUFDZEMsUUFBUSxFQUFFLFNBQVM7RUFDbkJDLFFBQVEsRUFBRSxtQkFBbUI7RUFDN0JDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxNQUFNLEVB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
|