@promptbook/components 0.114.0-4 → 0.114.0-40
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/README.md +9 -9
- package/esm/index.es.js +1794 -289
- package/esm/index.es.js.map +1 -1
- package/esm/src/_packages/components.index.d.ts +4 -0
- package/esm/src/_packages/types.index.d.ts +4 -0
- package/esm/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
- package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
- package/esm/src/book-2.0/agent-source/AgentReferenceResolutionIssue.d.ts +45 -0
- package/esm/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +5 -0
- package/esm/src/book-2.0/agent-source/ParsedUnknownCommitment.d.ts +26 -0
- package/esm/src/book-2.0/agent-source/deduplicateSystemMessage.d.ts +14 -0
- package/esm/src/book-2.0/agent-source/explicitFromCommitment.d.ts +62 -0
- package/esm/src/book-2.0/agent-source/extractAgentReferenceTokens.d.ts +32 -0
- package/esm/src/book-2.0/agent-source/getBookCommitmentLineType.d.ts +19 -0
- package/esm/src/book-2.0/agent-source/parseAgentSourceWithCommitments.unknown.test.d.ts +1 -0
- package/esm/src/book-2.0/agent-source/resolveInheritedAgentSource.d.ts +73 -0
- package/esm/src/book-2.0/book-language-documentation/getSafeCodeBlock.d.ts +1 -1
- package/esm/src/book-3.0/AgentMessageRunReport.d.ts +46 -0
- package/esm/src/book-3.0/AgentPlannedMessagesSidecar.d.ts +127 -0
- package/esm/src/book-3.0/AgentPlannedMessagesSidecar.test.d.ts +1 -0
- package/esm/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
- package/esm/src/book-3.0/cliAgentEnv.d.ts +3 -3
- package/esm/src/book-3.0/createAgentMessageSidecarBaseName.d.ts +13 -0
- package/esm/src/book-3.0/describeAgentPlannedMessageSchedule.d.ts +31 -0
- package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +1 -9
- package/esm/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.d.ts +28 -0
- package/esm/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.test.d.ts +1 -0
- package/esm/src/book-components/BookEditor/createUnknownCommitmentDiagnostics.d.ts +28 -0
- package/esm/src/book-components/BookEditor/createUnknownCommitmentDiagnostics.test.d.ts +1 -0
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
- package/esm/src/book-components/Chat/Chat/renderAgentProjectDiff.d.ts +13 -0
- package/esm/src/book-components/Chat/Chat/renderAgentProjectToolCallDetails.d.ts +16 -0
- package/esm/src/book-components/Chat/MockedChat/MockedChat.test.d.ts +2 -0
- package/esm/src/book-components/Chat/utils/agentProjectToolCall.d.ts +85 -0
- package/esm/src/book-components/Chat/utils/agentProjectToolCall.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/externalSourceToolCall.d.ts +38 -0
- package/esm/src/book-components/Chat/utils/renderMarkdown.d.ts +68 -3
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +30 -0
- package/esm/src/cli/$initializePromptbookCliProgram.d.ts +8 -0
- package/esm/src/cli/cli-commands/coder/$ensureCoderHarnessGitignoreRules.d.ts +10 -0
- package/esm/src/cli/cli-commands/coder/$ensureCoderHarnessGitignoreRules.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder/GitChangesMode.d.ts +28 -0
- package/esm/src/cli/cli-commands/coder/agentCliOptions.d.ts +21 -0
- package/esm/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/boilerplateTemplates.d.ts +8 -21
- package/esm/src/cli/cli-commands/coder/coderReferencedArtifacts.d.ts +33 -0
- package/esm/src/cli/cli-commands/coder/ensureCoderGitignoreFile.d.ts +14 -1
- package/esm/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.d.ts +4 -2
- package/esm/src/cli/cli-commands/coder/ensureCoderVscodeSettingsFile.d.ts +2 -0
- package/esm/src/cli/cli-commands/coder/ensureDirectory.d.ts +6 -0
- package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.d.ts +6 -0
- package/esm/src/cli/cli-commands/coder/init.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +8 -5
- package/esm/src/cli/cli-commands/coder/list.d.ts +10 -0
- package/esm/src/cli/cli-commands/coder/list.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder/mergeStringRecordJsonFile.d.ts +19 -1
- package/esm/src/cli/cli-commands/coder/printCoderRunFailure.d.ts +6 -0
- package/esm/src/cli/cli-commands/coder/server.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder/verify.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/waitOptions.d.ts +12 -0
- package/esm/src/cli/cli-commands/coder.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/$askForConfirmation.d.ts +11 -0
- package/esm/src/cli/cli-commands/common/$askForConfirmation.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/LocalAgentBookCollection.d.ts +46 -0
- package/esm/src/cli/cli-commands/common/createLocalAgentReferenceResolver.d.ts +8 -0
- package/esm/src/cli/cli-commands/common/disk-space/$assertSufficientFreeDiskSpace.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/disk-space/$assertSufficientFreeDiskSpace.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/disk-space/$readFreeDiskSpaceStatus.d.ts +11 -0
- package/esm/src/cli/cli-commands/common/disk-space/$readFreeDiskSpaceStatus.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/disk-space/FreeDiskSpaceStatus.d.ts +33 -0
- package/esm/src/cli/cli-commands/common/disk-space/formatFreeDiskSpaceBytes.d.ts +6 -0
- package/esm/src/cli/cli-commands/common/disk-space/formatFreeDiskSpaceBytes.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/disk-space/formatLowFreeDiskSpaceWarning.d.ts +10 -0
- package/esm/src/cli/cli-commands/common/disk-space/freeDiskSpaceConstants.d.ts +28 -0
- package/esm/src/cli/cli-commands/common/disk-space/resolveFreeDiskSpaceLevel.d.ts +7 -0
- package/esm/src/cli/cli-commands/common/disk-space/resolveFreeDiskSpaceLevel.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/ensureAdamAgentBook.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/harness/$applyHarnessInstallationStatus.d.ts +3 -2
- package/esm/src/cli/cli-commands/common/harness/$checkHarnessInstallation.d.ts +3 -3
- package/esm/src/cli/cli-commands/common/harness/$checkHarnessInstallation.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/harness/$ensureHarnessInstallations.d.ts +4 -3
- package/esm/src/cli/cli-commands/common/harness/$resolveHarnessCommandPath.d.ts +14 -0
- package/esm/src/cli/cli-commands/common/harness/$resolveHarnessInstallationOrigin.d.ts +10 -0
- package/esm/src/cli/cli-commands/common/harness/$runHarnessInstallationCommand.d.ts +43 -0
- package/esm/src/cli/cli-commands/common/harness/HarnessDefinition.d.ts +62 -0
- package/esm/src/cli/cli-commands/common/harness/HarnessInstallationOrigin.d.ts +36 -0
- package/esm/src/cli/cli-commands/common/harness/HarnessInstallationStatus.d.ts +8 -2
- package/esm/src/cli/cli-commands/common/harness/HarnessUpdatePlan.d.ts +23 -0
- package/esm/src/cli/cli-commands/common/harness/buildHarnessInstallCommand.d.ts +4 -1
- package/esm/src/cli/cli-commands/common/harness/formatHarnessManualUpdateInstruction.d.ts +8 -0
- package/esm/src/cli/cli-commands/common/harness/formatHarnessManualUpdateInstruction.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/harness/resolveHarnessInstallationMethodFromPaths.d.ts +31 -0
- package/esm/src/cli/cli-commands/common/harness/resolveHarnessInstallationMethodFromPaths.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/harness/resolveHarnessUpdatePlan.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/harness/resolveHarnessUpdatePlan.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/npm/$askForNpmPackageInstallationApproval.d.ts +11 -0
- package/{umd/src/cli/cli-commands/common/harness/$resolveLatestHarnessVersion.d.ts → esm/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
- package/esm/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/npm/$resolveNpmGlobalPrefixPath.d.ts +9 -0
- package/esm/src/cli/cli-commands/common/npm/buildNpmPackageInstallCommand.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/npm/buildNpmPackageInstallCommand.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/projectInitialization.d.ts +6 -0
- package/esm/src/cli/cli-commands/common/promptPriorityCliOptions.d.ts +7 -0
- package/esm/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +17 -4
- package/esm/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +15 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +66 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
- package/esm/src/cli/cli-commands/common/questionsCliOptions.d.ts +45 -0
- package/esm/src/cli/cli-commands/common/questionsCliOptions.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/resolveBundledAgentBookPath.d.ts +6 -0
- package/esm/src/cli/cli-commands/common/resolveLocalAgentSource.d.ts +19 -0
- package/esm/src/cli/common/$deprecateCliCommand.d.ts +3 -0
- package/esm/src/cli/common/$hideCliCommandFromHelp.d.ts +11 -0
- package/esm/src/cli/common/$hideCliCommandFromHelp.test.d.ts +1 -0
- package/esm/src/cli/common/$requireCliSubcommand.d.ts +18 -0
- package/esm/src/cli/common/$requireCliSubcommand.test.d.ts +1 -0
- package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +15 -0
- package/esm/src/commitments/WRITING_RULES/WRITING_RULES.d.ts +14 -7
- package/esm/src/commitments/index.d.ts +1 -1
- package/esm/src/executables/platforms/locateAppOnWindows.d.ts +1 -1
- package/esm/src/executables/platforms/locateAppOnWindows.test.d.ts +1 -0
- package/esm/src/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +5 -2
- package/esm/src/utils/agent-message-runtime/AgentMessageProjectChange.d.ts +76 -0
- package/esm/src/utils/agent-message-runtime/AgentMessageTouchedExternalSource.d.ts +45 -0
- package/esm/src/utils/agent-message-runtime/parseAgentMessageRuntimeLogEvents.d.ts +62 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.d.ts +18 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.test.d.ts +1 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedProjectNames.d.ts +19 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedProjectNames.test.d.ts +1 -0
- package/esm/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
- package/esm/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
- package/esm/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
- package/esm/src/utils/files/findFilesByGlob.d.ts +28 -0
- package/esm/src/utils/misc/debounce.d.ts +4 -2
- package/esm/src/utils/misc/debounce.test.d.ts +1 -0
- package/esm/src/utils/misc/emojis.d.ts +3 -2
- package/esm/src/utils/random/$generateBookBoilerplate.test.d.ts +1 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +3 -7
- package/umd/index.umd.js +1794 -289
- package/umd/index.umd.js.map +1 -1
- package/umd/src/_packages/components.index.d.ts +4 -0
- package/umd/src/_packages/types.index.d.ts +4 -0
- package/umd/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
- package/umd/src/avatars/renderAvatarVisualTerminalText.test.d.ts +1 -0
- package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
- package/umd/src/book-2.0/agent-source/AgentReferenceResolutionIssue.d.ts +45 -0
- package/umd/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +5 -0
- package/umd/src/book-2.0/agent-source/ParsedUnknownCommitment.d.ts +26 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.deduplication.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.unknown.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/deduplicateSystemMessage.d.ts +14 -0
- package/umd/src/book-2.0/agent-source/deduplicateSystemMessage.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/explicitFromCommitment.d.ts +62 -0
- package/umd/src/book-2.0/agent-source/extractAgentReferenceTokens.d.ts +32 -0
- package/umd/src/book-2.0/agent-source/getBookCommitmentLineType.d.ts +19 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.unknown.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/resolveInheritedAgentSource.d.ts +73 -0
- package/umd/src/book-2.0/book-language-documentation/getSafeCodeBlock.d.ts +1 -1
- package/umd/src/book-3.0/AgentMessageRunReport.d.ts +46 -0
- package/umd/src/book-3.0/AgentPlannedMessagesSidecar.d.ts +127 -0
- package/umd/src/book-3.0/AgentPlannedMessagesSidecar.test.d.ts +1 -0
- package/umd/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
- package/umd/src/book-3.0/cliAgentEnv.d.ts +3 -3
- package/umd/src/book-3.0/createAgentMessageSidecarBaseName.d.ts +13 -0
- package/umd/src/book-3.0/describeAgentPlannedMessageSchedule.d.ts +31 -0
- package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +1 -9
- package/umd/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.d.ts +28 -0
- package/umd/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.test.d.ts +1 -0
- package/umd/src/book-components/BookEditor/createUnknownCommitmentDiagnostics.d.ts +28 -0
- package/umd/src/book-components/BookEditor/createUnknownCommitmentDiagnostics.test.d.ts +1 -0
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
- package/umd/src/book-components/Chat/Chat/renderAgentProjectDiff.d.ts +13 -0
- package/umd/src/book-components/Chat/Chat/renderAgentProjectToolCallDetails.d.ts +16 -0
- package/umd/src/book-components/Chat/MockedChat/MockedChat.test.d.ts +2 -0
- package/umd/src/book-components/Chat/utils/agentProjectToolCall.d.ts +85 -0
- package/umd/src/book-components/Chat/utils/agentProjectToolCall.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/externalSourceToolCall.d.ts +38 -0
- package/umd/src/book-components/Chat/utils/renderMarkdown.d.ts +68 -3
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +30 -0
- package/umd/src/cli/$initializePromptbookCliProgram.d.ts +8 -0
- package/umd/src/cli/cli-commands/coder/$ensureCoderHarnessGitignoreRules.d.ts +10 -0
- package/umd/src/cli/cli-commands/coder/$ensureCoderHarnessGitignoreRules.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder/GitChangesMode.d.ts +28 -0
- package/umd/src/cli/cli-commands/coder/agentCliOptions.d.ts +21 -0
- package/umd/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
- package/umd/src/cli/cli-commands/coder/boilerplateTemplates.d.ts +8 -21
- package/umd/src/cli/cli-commands/coder/coderReferencedArtifacts.d.ts +33 -0
- package/umd/src/cli/cli-commands/coder/ensureCoderGitignoreFile.d.ts +14 -1
- package/umd/src/cli/cli-commands/coder/ensureCoderPackageJsonFile.d.ts +4 -2
- package/umd/src/cli/cli-commands/coder/ensureCoderVscodeSettingsFile.d.ts +2 -0
- package/umd/src/cli/cli-commands/coder/ensureDirectory.d.ts +6 -0
- package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
- package/umd/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.d.ts +6 -0
- package/umd/src/cli/cli-commands/coder/init.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +8 -5
- package/umd/src/cli/cli-commands/coder/list.d.ts +10 -0
- package/umd/src/cli/cli-commands/coder/list.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder/mergeStringRecordJsonFile.d.ts +19 -1
- package/umd/src/cli/cli-commands/coder/printCoderRunFailure.d.ts +6 -0
- package/umd/src/cli/cli-commands/coder/server.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder/verify.d.ts +1 -1
- package/umd/src/cli/cli-commands/coder/waitOptions.d.ts +12 -0
- package/umd/src/cli/cli-commands/coder.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/$askForConfirmation.d.ts +11 -0
- package/umd/src/cli/cli-commands/common/$askForConfirmation.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/LocalAgentBookCollection.d.ts +46 -0
- package/umd/src/cli/cli-commands/common/createLocalAgentReferenceResolver.d.ts +8 -0
- package/umd/src/cli/cli-commands/common/disk-space/$assertSufficientFreeDiskSpace.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/disk-space/$assertSufficientFreeDiskSpace.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/disk-space/$readFreeDiskSpaceStatus.d.ts +11 -0
- package/umd/src/cli/cli-commands/common/disk-space/$readFreeDiskSpaceStatus.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/disk-space/FreeDiskSpaceStatus.d.ts +33 -0
- package/umd/src/cli/cli-commands/common/disk-space/formatFreeDiskSpaceBytes.d.ts +6 -0
- package/umd/src/cli/cli-commands/common/disk-space/formatFreeDiskSpaceBytes.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/disk-space/formatLowFreeDiskSpaceWarning.d.ts +10 -0
- package/umd/src/cli/cli-commands/common/disk-space/freeDiskSpaceConstants.d.ts +28 -0
- package/umd/src/cli/cli-commands/common/disk-space/resolveFreeDiskSpaceLevel.d.ts +7 -0
- package/umd/src/cli/cli-commands/common/disk-space/resolveFreeDiskSpaceLevel.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/ensureAdamAgentBook.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/harness/$applyHarnessInstallationStatus.d.ts +3 -2
- package/umd/src/cli/cli-commands/common/harness/$checkHarnessInstallation.d.ts +3 -3
- package/umd/src/cli/cli-commands/common/harness/$checkHarnessInstallation.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/harness/$ensureHarnessInstallations.d.ts +4 -3
- package/umd/src/cli/cli-commands/common/harness/$resolveHarnessCommandPath.d.ts +14 -0
- package/umd/src/cli/cli-commands/common/harness/$resolveHarnessInstallationOrigin.d.ts +10 -0
- package/umd/src/cli/cli-commands/common/harness/$runHarnessInstallationCommand.d.ts +43 -0
- package/umd/src/cli/cli-commands/common/harness/HarnessDefinition.d.ts +62 -0
- package/umd/src/cli/cli-commands/common/harness/HarnessInstallationOrigin.d.ts +36 -0
- package/umd/src/cli/cli-commands/common/harness/HarnessInstallationStatus.d.ts +8 -2
- package/umd/src/cli/cli-commands/common/harness/HarnessUpdatePlan.d.ts +23 -0
- package/umd/src/cli/cli-commands/common/harness/buildHarnessInstallCommand.d.ts +4 -1
- package/umd/src/cli/cli-commands/common/harness/formatHarnessManualUpdateInstruction.d.ts +8 -0
- package/umd/src/cli/cli-commands/common/harness/formatHarnessManualUpdateInstruction.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/harness/resolveHarnessInstallationMethodFromPaths.d.ts +31 -0
- package/umd/src/cli/cli-commands/common/harness/resolveHarnessInstallationMethodFromPaths.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/harness/resolveHarnessUpdatePlan.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/harness/resolveHarnessUpdatePlan.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/$askForNpmPackageInstallationApproval.d.ts +11 -0
- package/{esm/src/cli/cli-commands/common/harness/$resolveLatestHarnessVersion.d.ts → umd/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
- package/umd/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/$resolveNpmGlobalPrefixPath.d.ts +9 -0
- package/umd/src/cli/cli-commands/common/npm/buildNpmPackageInstallCommand.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/npm/buildNpmPackageInstallCommand.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/projectInitialization.d.ts +6 -0
- package/umd/src/cli/cli-commands/common/promptPriorityCliOptions.d.ts +7 -0
- package/umd/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +17 -4
- package/umd/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +15 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +66 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
- package/umd/src/cli/cli-commands/common/questionsCliOptions.d.ts +45 -0
- package/umd/src/cli/cli-commands/common/questionsCliOptions.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/resolveBundledAgentBookPath.d.ts +6 -0
- package/umd/src/cli/cli-commands/common/resolveLocalAgentSource.d.ts +19 -0
- package/umd/src/cli/common/$deprecateCliCommand.d.ts +3 -0
- package/umd/src/cli/common/$hideCliCommandFromHelp.d.ts +11 -0
- package/umd/src/cli/common/$hideCliCommandFromHelp.test.d.ts +1 -0
- package/umd/src/cli/common/$requireCliSubcommand.d.ts +18 -0
- package/umd/src/cli/common/$requireCliSubcommand.test.d.ts +1 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +15 -0
- package/umd/src/commitments/WRITING_RULES/WRITING_RULES.d.ts +14 -7
- package/umd/src/commitments/index.d.ts +1 -1
- package/umd/src/executables/platforms/locateAppOnWindows.d.ts +1 -1
- package/umd/src/executables/platforms/locateAppOnWindows.test.d.ts +1 -0
- package/umd/src/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +5 -2
- package/umd/src/utils/agent-message-runtime/AgentMessageProjectChange.d.ts +76 -0
- package/umd/src/utils/agent-message-runtime/AgentMessageTouchedExternalSource.d.ts +45 -0
- package/umd/src/utils/agent-message-runtime/parseAgentMessageRuntimeLogEvents.d.ts +62 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.d.ts +18 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.test.d.ts +1 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedProjectNames.d.ts +19 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedProjectNames.test.d.ts +1 -0
- package/umd/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
- package/umd/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
- package/umd/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
- package/umd/src/utils/files/findFilesByGlob.d.ts +28 -0
- package/umd/src/utils/misc/debounce.d.ts +4 -2
- package/umd/src/utils/misc/debounce.test.d.ts +1 -0
- package/umd/src/utils/misc/emojis.d.ts +3 -2
- package/umd/src/utils/random/$generateBookBoilerplate.test.d.ts +1 -0
- package/umd/src/version.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/agentCodingFile.d.ts +0 -13
- package/esm/src/cli/cli-commands/common/harness/$askForHarnessInstallationApproval.d.ts +0 -9
- package/esm/src/cli/cli-commands/common/harness/$installHarness.d.ts +0 -13
- package/esm/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
- package/esm/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
- package/umd/src/cli/cli-commands/coder/agentCodingFile.d.ts +0 -13
- package/umd/src/cli/cli-commands/common/harness/$askForHarnessInstallationApproval.d.ts +0 -9
- package/umd/src/cli/cli-commands/common/harness/$installHarness.d.ts +0 -13
- package/umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
- package/umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
- /package/esm/src/{cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → avatars/renderAvatarVisualTerminalText.test.d.ts} +0 -0
- /package/esm/src/{cli/cli-commands/common/harness/isHarnessVersionOutdated.test.d.ts → book-2.0/agent-source/createAgentModelRequirements.deduplication.test.d.ts} +0 -0
- /package/{umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → esm/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.unknown.test.d.ts} +0 -0
- /package/{umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.test.d.ts → esm/src/book-2.0/agent-source/deduplicateSystemMessage.test.d.ts} +0 -0
package/esm/index.es.js
CHANGED
|
@@ -39,7 +39,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
39
39
|
* @generated
|
|
40
40
|
* @see https://github.com/webgptorg/promptbook
|
|
41
41
|
*/
|
|
42
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.114.0-
|
|
42
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.114.0-40';
|
|
43
43
|
/**
|
|
44
44
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
45
45
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -1954,6 +1954,15 @@ const OUTLINE_GLYPHS = ['#', '%', '@'];
|
|
|
1954
1954
|
* @private helper of `asciiOctopusAvatarVisual`
|
|
1955
1955
|
*/
|
|
1956
1956
|
const ATMOSPHERE_GLYPHS = ['.', ':', "'", '`'];
|
|
1957
|
+
/**
|
|
1958
|
+
* Coordinate space the octopus layout is generated in when it is painted into a terminal.
|
|
1959
|
+
*
|
|
1960
|
+
* The terminal renderer has its own character grid, so the geometry only needs one stable
|
|
1961
|
+
* square coordinate space which the grid is then sampled from.
|
|
1962
|
+
*
|
|
1963
|
+
* @private helper of `asciiOctopusAvatarVisual`
|
|
1964
|
+
*/
|
|
1965
|
+
const TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE = DEFAULT_AVATAR_SIZE;
|
|
1957
1966
|
/**
|
|
1958
1967
|
* AsciiOctopus avatar visual.
|
|
1959
1968
|
*
|
|
@@ -1970,41 +1979,115 @@ const asciiOctopusAvatarVisual = {
|
|
|
1970
1979
|
const staticRandom = createRandom('ascii-octopus-static');
|
|
1971
1980
|
const gridMetrics = createAsciiGridMetrics(size, gridRandom);
|
|
1972
1981
|
const layout = createAsciiOctopusLayout(size, timeMs, createRandom, staticRandom, interaction);
|
|
1982
|
+
const glyphGrid = createAsciiOctopusGlyphGrid({
|
|
1983
|
+
sampleGrid: gridMetrics,
|
|
1984
|
+
layout,
|
|
1985
|
+
palette,
|
|
1986
|
+
cellRandom: createRandom('ascii-octopus-cells'),
|
|
1987
|
+
timeMs,
|
|
1988
|
+
});
|
|
1973
1989
|
drawAvatarFrame(context, size, palette);
|
|
1974
1990
|
drawAsciiBackdrop(context, size, palette, layout, timeMs);
|
|
1975
1991
|
context.save();
|
|
1976
1992
|
context.font = `600 ${gridMetrics.fontSize}px monospace`;
|
|
1977
1993
|
context.textAlign = 'center';
|
|
1978
1994
|
context.textBaseline = 'middle';
|
|
1979
|
-
// The ASCII renderer samples the morphing octopus field on a low-resolution grid so the shape stays organic
|
|
1980
|
-
// while the glyph layout remains deterministic for the same avatar input.
|
|
1981
|
-
const cellRandom = createRandom('ascii-octopus-cells');
|
|
1982
1995
|
for (let rowIndex = 0; rowIndex < gridMetrics.rowCount; rowIndex++) {
|
|
1983
1996
|
for (let columnIndex = 0; columnIndex < gridMetrics.columnCount; columnIndex++) {
|
|
1984
|
-
const
|
|
1985
|
-
x: gridMetrics.offsetX + columnIndex * gridMetrics.cellWidth,
|
|
1986
|
-
y: gridMetrics.offsetY + rowIndex * gridMetrics.cellHeight,
|
|
1987
|
-
};
|
|
1988
|
-
const noise = cellRandom();
|
|
1989
|
-
const glyphDescriptor = resolveAsciiGlyph({
|
|
1990
|
-
point,
|
|
1991
|
-
layout,
|
|
1992
|
-
palette,
|
|
1993
|
-
cellWidth: gridMetrics.cellWidth,
|
|
1994
|
-
cellHeight: gridMetrics.cellHeight,
|
|
1995
|
-
noise,
|
|
1996
|
-
timeMs,
|
|
1997
|
-
});
|
|
1997
|
+
const glyphDescriptor = glyphGrid[rowIndex][columnIndex];
|
|
1998
1998
|
if (!glyphDescriptor) {
|
|
1999
1999
|
continue;
|
|
2000
2000
|
}
|
|
2001
|
+
const point = resolveAsciiSampleGridPoint(gridMetrics, columnIndex, rowIndex);
|
|
2001
2002
|
context.fillStyle = glyphDescriptor.color;
|
|
2002
2003
|
context.fillText(glyphDescriptor.character, point.x, point.y);
|
|
2003
2004
|
}
|
|
2004
2005
|
}
|
|
2005
2006
|
context.restore();
|
|
2006
2007
|
},
|
|
2008
|
+
renderTerminalText({ columns, rows, palette, createRandom, timeMs, interaction }) {
|
|
2009
|
+
const staticRandom = createRandom('ascii-octopus-static');
|
|
2010
|
+
const layout = createAsciiOctopusLayout(TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE, timeMs, createRandom, staticRandom, interaction);
|
|
2011
|
+
return createAsciiOctopusGlyphGrid({
|
|
2012
|
+
sampleGrid: createAsciiTerminalSampleGrid(columns, rows),
|
|
2013
|
+
layout,
|
|
2014
|
+
palette,
|
|
2015
|
+
cellRandom: createRandom('ascii-octopus-cells'),
|
|
2016
|
+
timeMs,
|
|
2017
|
+
});
|
|
2018
|
+
},
|
|
2007
2019
|
};
|
|
2020
|
+
/**
|
|
2021
|
+
* Resolves the geometry point sampled for one cell of the grid.
|
|
2022
|
+
*
|
|
2023
|
+
* @param sampleGrid Character-cell sampling grid.
|
|
2024
|
+
* @param columnIndex Zero-based cell column.
|
|
2025
|
+
* @param rowIndex Zero-based cell row.
|
|
2026
|
+
* @returns Sampled point in the octopus coordinate space.
|
|
2027
|
+
*
|
|
2028
|
+
* @private helper of `asciiOctopusAvatarVisual`
|
|
2029
|
+
*/
|
|
2030
|
+
function resolveAsciiSampleGridPoint(sampleGrid, columnIndex, rowIndex) {
|
|
2031
|
+
return {
|
|
2032
|
+
x: sampleGrid.offsetX + columnIndex * sampleGrid.cellWidth,
|
|
2033
|
+
y: sampleGrid.offsetY + rowIndex * sampleGrid.cellHeight,
|
|
2034
|
+
};
|
|
2035
|
+
}
|
|
2036
|
+
/**
|
|
2037
|
+
* Builds the sampling grid used when the octopus is painted straight into terminal character cells.
|
|
2038
|
+
*
|
|
2039
|
+
* @param columns Available terminal columns.
|
|
2040
|
+
* @param rows Available terminal rows.
|
|
2041
|
+
* @returns Character-cell sampling grid covering the whole octopus coordinate space.
|
|
2042
|
+
*
|
|
2043
|
+
* @private helper of `asciiOctopusAvatarVisual`
|
|
2044
|
+
*/
|
|
2045
|
+
function createAsciiTerminalSampleGrid(columns, rows) {
|
|
2046
|
+
const cellWidth = TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE / columns;
|
|
2047
|
+
const cellHeight = TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE / rows;
|
|
2048
|
+
return {
|
|
2049
|
+
cellWidth,
|
|
2050
|
+
cellHeight,
|
|
2051
|
+
columnCount: columns,
|
|
2052
|
+
rowCount: rows,
|
|
2053
|
+
offsetX: cellWidth / 2,
|
|
2054
|
+
offsetY: cellHeight / 2,
|
|
2055
|
+
};
|
|
2056
|
+
}
|
|
2057
|
+
/**
|
|
2058
|
+
* Samples the morphing octopus field into one deterministic grid of ASCII glyphs.
|
|
2059
|
+
*
|
|
2060
|
+
* The field is sampled on a low-resolution grid so the shape stays organic while the glyph
|
|
2061
|
+
* layout remains deterministic for the same avatar input. Both the canvas visual and the
|
|
2062
|
+
* terminal visual share this single sampling pass so they always describe the same octopus.
|
|
2063
|
+
*
|
|
2064
|
+
* @param options Sampling grid, prepared octopus layout, palette, per-cell noise, and animation time.
|
|
2065
|
+
* @returns Resolved glyph of every sampled cell, where `null` means an empty cell.
|
|
2066
|
+
*
|
|
2067
|
+
* @private helper of `asciiOctopusAvatarVisual`
|
|
2068
|
+
*/
|
|
2069
|
+
function createAsciiOctopusGlyphGrid(options) {
|
|
2070
|
+
const { sampleGrid, layout, palette, cellRandom, timeMs } = options;
|
|
2071
|
+
const glyphGrid = [];
|
|
2072
|
+
for (let rowIndex = 0; rowIndex < sampleGrid.rowCount; rowIndex++) {
|
|
2073
|
+
const glyphRow = [];
|
|
2074
|
+
for (let columnIndex = 0; columnIndex < sampleGrid.columnCount; columnIndex++) {
|
|
2075
|
+
const point = resolveAsciiSampleGridPoint(sampleGrid, columnIndex, rowIndex);
|
|
2076
|
+
const noise = cellRandom();
|
|
2077
|
+
glyphRow.push(resolveAsciiGlyph({
|
|
2078
|
+
point,
|
|
2079
|
+
layout,
|
|
2080
|
+
palette,
|
|
2081
|
+
cellWidth: sampleGrid.cellWidth,
|
|
2082
|
+
cellHeight: sampleGrid.cellHeight,
|
|
2083
|
+
noise,
|
|
2084
|
+
timeMs,
|
|
2085
|
+
}));
|
|
2086
|
+
}
|
|
2087
|
+
glyphGrid.push(glyphRow);
|
|
2088
|
+
}
|
|
2089
|
+
return glyphGrid;
|
|
2090
|
+
}
|
|
2008
2091
|
/**
|
|
2009
2092
|
* Draws the dark terminal-like glow behind the ASCII octopus.
|
|
2010
2093
|
*
|
|
@@ -10066,6 +10149,12 @@ class FromCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10066
10149
|
|
|
10067
10150
|
Inherits agent source from another agent.
|
|
10068
10151
|
|
|
10152
|
+
Every agent inherits from the core agent \`@Adam\` unless it says otherwise, so writing no ${this.type} at all
|
|
10153
|
+
is the same as writing \`${this.type} @Adam\`. Write \`${this.type} @Null\` to inherit from nothing.
|
|
10154
|
+
|
|
10155
|
+
An agent has exactly one parent, so when ${this.type} is written more than once, the last one wins and
|
|
10156
|
+
overrides every earlier one.
|
|
10157
|
+
|
|
10069
10158
|
## Examples
|
|
10070
10159
|
|
|
10071
10160
|
\`\`\`book
|
|
@@ -10074,6 +10163,13 @@ class FromCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10074
10163
|
FROM https://s6.ptbk.io/benjamin-white
|
|
10075
10164
|
RULE Speak only in English.
|
|
10076
10165
|
\`\`\`
|
|
10166
|
+
|
|
10167
|
+
\`\`\`book
|
|
10168
|
+
My Standalone Agent
|
|
10169
|
+
|
|
10170
|
+
FROM @Null
|
|
10171
|
+
RULE Speak only in English.
|
|
10172
|
+
\`\`\`
|
|
10077
10173
|
`);
|
|
10078
10174
|
}
|
|
10079
10175
|
applyToAgentModelRequirements(requirements, content) {
|
|
@@ -17937,29 +18033,36 @@ class UseUserLocationCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
17937
18033
|
/**
|
|
17938
18034
|
* `WRITING RULES` commitment definition.
|
|
17939
18035
|
*
|
|
17940
|
-
*
|
|
17941
|
-
* rather than task-solving behavior.
|
|
18036
|
+
* The `WRITING RULES`/`WRITING RULE` commitment adds constraints that apply strictly to writing style
|
|
18037
|
+
* and presentation rather than task-solving behavior.
|
|
18038
|
+
*
|
|
18039
|
+
* Example usage in agent source:
|
|
18040
|
+
*
|
|
18041
|
+
* ```book
|
|
18042
|
+
* WRITING RULES Keep every response under 120 words
|
|
18043
|
+
* WRITING RULE Always end the message with an emoji
|
|
18044
|
+
* ```
|
|
17942
18045
|
*
|
|
17943
18046
|
* @private [🪔] Maybe export the commitments through some package
|
|
17944
18047
|
*/
|
|
17945
18048
|
class WritingRulesCommitmentDefinition extends BaseCommitmentDefinition {
|
|
17946
|
-
constructor() {
|
|
17947
|
-
super(
|
|
18049
|
+
constructor(type = 'WRITING RULES') {
|
|
18050
|
+
super(type);
|
|
17948
18051
|
}
|
|
17949
18052
|
/**
|
|
17950
|
-
* Short one-line description of `WRITING RULES`.
|
|
18053
|
+
* Short one-line description of `WRITING RULES`/`WRITING RULE`.
|
|
17951
18054
|
*/
|
|
17952
18055
|
get description() {
|
|
17953
18056
|
return 'Add writing-only constraints such as tone, length, formatting, or emoji usage.';
|
|
17954
18057
|
}
|
|
17955
18058
|
/**
|
|
17956
|
-
* Icon for `WRITING RULES`.
|
|
18059
|
+
* Icon for `WRITING RULES`/`WRITING RULE`.
|
|
17957
18060
|
*/
|
|
17958
18061
|
get icon() {
|
|
17959
18062
|
return '📝';
|
|
17960
18063
|
}
|
|
17961
18064
|
/**
|
|
17962
|
-
* Markdown documentation for `WRITING RULES
|
|
18065
|
+
* Markdown documentation for `WRITING RULES`/`WRITING RULE` commitment.
|
|
17963
18066
|
*/
|
|
17964
18067
|
get documentation() {
|
|
17965
18068
|
return spaceTrim$1(`
|
|
@@ -17969,6 +18072,7 @@ class WritingRulesCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
17969
18072
|
|
|
17970
18073
|
## Key aspects
|
|
17971
18074
|
|
|
18075
|
+
- All writing rules are treated equally regardless of singular/plural form.
|
|
17972
18076
|
- Use it for writing-only constraints such as tone, formatting, length, emoji usage, punctuation, or reading level.
|
|
17973
18077
|
- Do **not** use it for problem-solving behavior, policy, tool usage, or decision-making logic. Use \`RULE\` for that.
|
|
17974
18078
|
- Newer writing-rules blocks override conflicting earlier writing-rules blocks.
|
|
@@ -18167,7 +18271,8 @@ const COMMITMENT_REGISTRY = [
|
|
|
18167
18271
|
new LanguageCommitmentDefinition('LANGUAGE'),
|
|
18168
18272
|
new LanguageCommitmentDefinition('LANGUAGES'),
|
|
18169
18273
|
new WritingSampleCommitmentDefinition(),
|
|
18170
|
-
new WritingRulesCommitmentDefinition(),
|
|
18274
|
+
new WritingRulesCommitmentDefinition('WRITING RULES'),
|
|
18275
|
+
new WritingRulesCommitmentDefinition('WRITING RULE'),
|
|
18171
18276
|
new SampleCommitmentDefinition('SAMPLE'),
|
|
18172
18277
|
new SampleCommitmentDefinition('EXAMPLE'),
|
|
18173
18278
|
new FormatCommitmentDefinition('FORMAT'),
|
|
@@ -18239,6 +18344,42 @@ const COMMITMENT_REGISTRY = [
|
|
|
18239
18344
|
// TODO: [🧠] Maybe create through standardized $register
|
|
18240
18345
|
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
18241
18346
|
|
|
18347
|
+
/**
|
|
18348
|
+
* Pattern shared by Book parsing and editor highlighting for a commitment-like line.
|
|
18349
|
+
*
|
|
18350
|
+
* A Book commitment keyword consists of one or more all-uppercase words with at least
|
|
18351
|
+
* two characters each. This deliberately mirrors the Book editor syntax rule so an
|
|
18352
|
+
* unknown keyword starts a new source block everywhere it is interpreted.
|
|
18353
|
+
*
|
|
18354
|
+
* @private internal constant of `getBookCommitmentLineType`
|
|
18355
|
+
*/
|
|
18356
|
+
const BOOK_COMMITMENT_LINE_TYPE_REGEX = /^\s*(?<type>[A-Z][A-Z0-9]+(?:\s+[A-Z][A-Z0-9]+)*)(?=\s|$)/;
|
|
18357
|
+
/**
|
|
18358
|
+
* Creates the regex used to recognize the uppercase commitment type at the beginning of a Book line.
|
|
18359
|
+
*
|
|
18360
|
+
* A fresh regular expression keeps Monaco tokenizer state isolated from parser calls.
|
|
18361
|
+
*
|
|
18362
|
+
* @returns Regular expression matching one Book commitment-like line.
|
|
18363
|
+
*
|
|
18364
|
+
* @private internal utility of Book parsing and `<BookEditor/>`
|
|
18365
|
+
*/
|
|
18366
|
+
function createBookCommitmentLineTypeRegex() {
|
|
18367
|
+
return new RegExp(BOOK_COMMITMENT_LINE_TYPE_REGEX.source);
|
|
18368
|
+
}
|
|
18369
|
+
/**
|
|
18370
|
+
* Extracts the uppercase commitment type from a Book line, including types not registered by Promptbook.
|
|
18371
|
+
*
|
|
18372
|
+
* @param line - One raw Book source line.
|
|
18373
|
+
* @returns Matched commitment type or `null` when the line does not begin with commitment syntax.
|
|
18374
|
+
*
|
|
18375
|
+
* @private internal utility of Book parsing and `<BookEditor/>`
|
|
18376
|
+
*/
|
|
18377
|
+
function getBookCommitmentLineType(line) {
|
|
18378
|
+
var _a;
|
|
18379
|
+
const match = BOOK_COMMITMENT_LINE_TYPE_REGEX.exec(line);
|
|
18380
|
+
return ((_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.type) || null;
|
|
18381
|
+
}
|
|
18382
|
+
|
|
18242
18383
|
/**
|
|
18243
18384
|
* Consumes the agent-name prelude from raw source.
|
|
18244
18385
|
*
|
|
@@ -18296,13 +18437,15 @@ function parseAgentSourceWithCommitments(agentSource) {
|
|
|
18296
18437
|
return {
|
|
18297
18438
|
agentName: null,
|
|
18298
18439
|
commitments: [],
|
|
18440
|
+
unknownCommitments: [],
|
|
18299
18441
|
nonCommitmentLines: [],
|
|
18300
18442
|
};
|
|
18301
18443
|
}
|
|
18302
18444
|
const { lines, agentName, agentNameLineIndex, agentNameLineNumber } = parseAgentSourcePrelude(agentSource);
|
|
18303
18445
|
const commitments = [];
|
|
18446
|
+
const unknownCommitments = [];
|
|
18304
18447
|
const nonCommitmentLines = agentNameLineIndex >= 0 ? [lines[agentNameLineIndex]] : [];
|
|
18305
|
-
// Parse commitments with multiline support
|
|
18448
|
+
// Parse commitments with multiline support.
|
|
18306
18449
|
let currentCommitment = null;
|
|
18307
18450
|
// Process lines starting from after the agent name line
|
|
18308
18451
|
const startIndex = agentNameLineIndex >= 0 ? agentNameLineIndex + 1 : 0;
|
|
@@ -18316,25 +18459,11 @@ function parseAgentSourceWithCommitments(agentSource) {
|
|
|
18316
18459
|
// Check if this line starts or ends a code block
|
|
18317
18460
|
if (trimmedLine.startsWith('```')) {
|
|
18318
18461
|
isInsideCodeBlock = !isInsideCodeBlock;
|
|
18319
|
-
|
|
18320
|
-
// If we are inside a commitment, the code block is part of it
|
|
18321
|
-
currentCommitment.contentLines.push(line);
|
|
18322
|
-
}
|
|
18323
|
-
else {
|
|
18324
|
-
// If we are not inside a commitment, the code block is non-commitment
|
|
18325
|
-
nonCommitmentLines.push(line);
|
|
18326
|
-
}
|
|
18462
|
+
appendLineToCurrentCommitmentOrNonCommitmentLines(currentCommitment, line, nonCommitmentLines);
|
|
18327
18463
|
continue;
|
|
18328
18464
|
}
|
|
18329
18465
|
if (isInsideCodeBlock) {
|
|
18330
|
-
|
|
18331
|
-
// If we are inside a commitment and a code block, the line is part of the commitment
|
|
18332
|
-
currentCommitment.contentLines.push(line);
|
|
18333
|
-
}
|
|
18334
|
-
else {
|
|
18335
|
-
// If we are inside a code block but not a commitment, the line is non-commitment
|
|
18336
|
-
nonCommitmentLines.push(line);
|
|
18337
|
-
}
|
|
18466
|
+
appendLineToCurrentCommitmentOrNonCommitmentLines(currentCommitment, line, nonCommitmentLines);
|
|
18338
18467
|
continue;
|
|
18339
18468
|
}
|
|
18340
18469
|
// Check if this line starts a new commitment
|
|
@@ -18343,22 +18472,14 @@ function parseAgentSourceWithCommitments(agentSource) {
|
|
|
18343
18472
|
const typeRegex = definition.createTypeRegex();
|
|
18344
18473
|
const match = typeRegex.exec(line.trim());
|
|
18345
18474
|
if (match && ((_a = match.groups) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
18346
|
-
|
|
18347
|
-
if (currentCommitment) {
|
|
18348
|
-
const fullContent = currentCommitment.contentLines.join('\n');
|
|
18349
|
-
commitments.push({
|
|
18350
|
-
type: currentCommitment.type,
|
|
18351
|
-
content: spaceTrim$1(fullContent),
|
|
18352
|
-
originalLine: currentCommitment.originalStartLine,
|
|
18353
|
-
lineNumber: currentCommitment.startLineNumber,
|
|
18354
|
-
});
|
|
18355
|
-
}
|
|
18475
|
+
appendCurrentCommitment(currentCommitment, commitments, unknownCommitments);
|
|
18356
18476
|
// Extract the initial content from the commitment line
|
|
18357
18477
|
const fullRegex = definition.createRegex();
|
|
18358
18478
|
const fullMatch = fullRegex.exec(line.trim());
|
|
18359
18479
|
const initialContent = ((_b = fullMatch === null || fullMatch === void 0 ? void 0 : fullMatch.groups) === null || _b === void 0 ? void 0 : _b.contents) || '';
|
|
18360
18480
|
// Start a new commitment
|
|
18361
18481
|
currentCommitment = {
|
|
18482
|
+
kind: 'known',
|
|
18362
18483
|
type: definition.type,
|
|
18363
18484
|
startLineNumber: i + 1,
|
|
18364
18485
|
originalStartLine: line,
|
|
@@ -18368,52 +18489,90 @@ function parseAgentSourceWithCommitments(agentSource) {
|
|
|
18368
18489
|
break;
|
|
18369
18490
|
}
|
|
18370
18491
|
}
|
|
18492
|
+
if (foundNewCommitment) {
|
|
18493
|
+
continue;
|
|
18494
|
+
}
|
|
18495
|
+
const unknownCommitmentType = getBookCommitmentLineType(line);
|
|
18496
|
+
if (unknownCommitmentType) {
|
|
18497
|
+
appendCurrentCommitment(currentCommitment, commitments, unknownCommitments);
|
|
18498
|
+
currentCommitment = {
|
|
18499
|
+
kind: 'unknown',
|
|
18500
|
+
type: unknownCommitmentType,
|
|
18501
|
+
startLineNumber: i + 1,
|
|
18502
|
+
originalStartLine: line,
|
|
18503
|
+
sourceLines: [line],
|
|
18504
|
+
};
|
|
18505
|
+
continue;
|
|
18506
|
+
}
|
|
18371
18507
|
// Check if this is a horizontal line (ends any current commitment)
|
|
18372
18508
|
const isHorizontalLine = HORIZONTAL_LINE_PATTERN$2.test(line);
|
|
18373
18509
|
if (isHorizontalLine) {
|
|
18374
|
-
|
|
18375
|
-
|
|
18376
|
-
const fullContent = currentCommitment.contentLines.join('\n');
|
|
18377
|
-
commitments.push({
|
|
18378
|
-
type: currentCommitment.type,
|
|
18379
|
-
content: spaceTrim$1(fullContent),
|
|
18380
|
-
originalLine: currentCommitment.originalStartLine,
|
|
18381
|
-
lineNumber: currentCommitment.startLineNumber,
|
|
18382
|
-
});
|
|
18383
|
-
currentCommitment = null;
|
|
18384
|
-
}
|
|
18510
|
+
appendCurrentCommitment(currentCommitment, commitments, unknownCommitments);
|
|
18511
|
+
currentCommitment = null;
|
|
18385
18512
|
// Add horizontal line to non-commitment lines
|
|
18386
18513
|
nonCommitmentLines.push(line);
|
|
18387
18514
|
continue;
|
|
18388
18515
|
}
|
|
18389
|
-
|
|
18390
|
-
if (currentCommitment) {
|
|
18391
|
-
// This line belongs to the current commitment
|
|
18392
|
-
currentCommitment.contentLines.push(line);
|
|
18393
|
-
}
|
|
18394
|
-
else {
|
|
18395
|
-
// This line is not part of any commitment
|
|
18396
|
-
nonCommitmentLines.push(line);
|
|
18397
|
-
}
|
|
18398
|
-
}
|
|
18399
|
-
}
|
|
18400
|
-
// Don't forget to save the last commitment if it exists
|
|
18401
|
-
if (currentCommitment) {
|
|
18402
|
-
const fullContent = currentCommitment.contentLines.join('\n');
|
|
18403
|
-
commitments.push({
|
|
18404
|
-
type: currentCommitment.type,
|
|
18405
|
-
content: spaceTrim$1(fullContent),
|
|
18406
|
-
originalLine: currentCommitment.originalStartLine,
|
|
18407
|
-
lineNumber: currentCommitment.startLineNumber,
|
|
18408
|
-
});
|
|
18516
|
+
appendLineToCurrentCommitmentOrNonCommitmentLines(currentCommitment, line, nonCommitmentLines);
|
|
18409
18517
|
}
|
|
18518
|
+
appendCurrentCommitment(currentCommitment, commitments, unknownCommitments);
|
|
18410
18519
|
return {
|
|
18411
18520
|
agentName,
|
|
18412
18521
|
agentNameLineNumber,
|
|
18413
18522
|
commitments,
|
|
18523
|
+
unknownCommitments,
|
|
18414
18524
|
nonCommitmentLines,
|
|
18415
18525
|
};
|
|
18416
18526
|
}
|
|
18527
|
+
/**
|
|
18528
|
+
* Stores the current known or unknown commitment in its appropriate parsed collection.
|
|
18529
|
+
*
|
|
18530
|
+
* @param currentCommitment - Commitment-like block collected so far.
|
|
18531
|
+
* @param commitments - Parsed registered commitments to append to.
|
|
18532
|
+
* @param unknownCommitments - Parsed unregistered commitments to append to.
|
|
18533
|
+
*
|
|
18534
|
+
* @private internal utility of `parseAgentSourceWithCommitments`
|
|
18535
|
+
*/
|
|
18536
|
+
function appendCurrentCommitment(currentCommitment, commitments, unknownCommitments) {
|
|
18537
|
+
if (!currentCommitment) {
|
|
18538
|
+
return;
|
|
18539
|
+
}
|
|
18540
|
+
if (currentCommitment.kind === 'unknown') {
|
|
18541
|
+
unknownCommitments.push({
|
|
18542
|
+
type: currentCommitment.type,
|
|
18543
|
+
originalLine: currentCommitment.originalStartLine,
|
|
18544
|
+
lineNumber: currentCommitment.startLineNumber,
|
|
18545
|
+
source: spaceTrim$1(currentCommitment.sourceLines.join('\n')),
|
|
18546
|
+
});
|
|
18547
|
+
return;
|
|
18548
|
+
}
|
|
18549
|
+
commitments.push({
|
|
18550
|
+
type: currentCommitment.type,
|
|
18551
|
+
content: spaceTrim$1(currentCommitment.contentLines.join('\n')),
|
|
18552
|
+
originalLine: currentCommitment.originalStartLine,
|
|
18553
|
+
lineNumber: currentCommitment.startLineNumber,
|
|
18554
|
+
});
|
|
18555
|
+
}
|
|
18556
|
+
/**
|
|
18557
|
+
* Adds one source line to the active commitment-like block, or to plain source content when none is active.
|
|
18558
|
+
*
|
|
18559
|
+
* @param currentCommitment - Commitment-like block currently being collected.
|
|
18560
|
+
* @param line - Source line to append.
|
|
18561
|
+
* @param nonCommitmentLines - Plain source lines to append to when no block is active.
|
|
18562
|
+
*
|
|
18563
|
+
* @private internal utility of `parseAgentSourceWithCommitments`
|
|
18564
|
+
*/
|
|
18565
|
+
function appendLineToCurrentCommitmentOrNonCommitmentLines(currentCommitment, line, nonCommitmentLines) {
|
|
18566
|
+
if (!currentCommitment) {
|
|
18567
|
+
nonCommitmentLines.push(line);
|
|
18568
|
+
return;
|
|
18569
|
+
}
|
|
18570
|
+
if (currentCommitment.kind === 'unknown') {
|
|
18571
|
+
currentCommitment.sourceLines.push(line);
|
|
18572
|
+
return;
|
|
18573
|
+
}
|
|
18574
|
+
currentCommitment.contentLines.push(line);
|
|
18575
|
+
}
|
|
18417
18576
|
|
|
18418
18577
|
/**
|
|
18419
18578
|
* Parses parameters from text using both supported notations:
|
|
@@ -19252,7 +19411,7 @@ function validateBook(source) {
|
|
|
19252
19411
|
const DEFAULT_BOOK = padBook(validateBook(spaceTrim$1(`
|
|
19253
19412
|
AI Avatar
|
|
19254
19413
|
|
|
19255
|
-
|
|
19414
|
+
GOAL Help users with their tasks as a friendly AI assistant.
|
|
19256
19415
|
`)));
|
|
19257
19416
|
// <- Note: Not using book`...` notation to avoid strange error in jest unit tests `TypeError: (0 , book_notation_1.book) is not a function`
|
|
19258
19417
|
// <- TODO: [🐱🚀] `GENESIS_BOOK` / `ADAM_BOOK` in `/agents/adam.book`
|
|
@@ -19907,15 +20066,199 @@ function resolveBookEditorRenderTheme(hostTheme = BOOK_EDITOR_RENDER_THEME) {
|
|
|
19907
20066
|
}
|
|
19908
20067
|
|
|
19909
20068
|
/**
|
|
19910
|
-
*
|
|
20069
|
+
* Gets a commitment definition by its type
|
|
19911
20070
|
*
|
|
19912
|
-
*
|
|
19913
|
-
*
|
|
20071
|
+
* @param type The commitment type to look up
|
|
20072
|
+
* @returns The commitment definition or null if not found
|
|
20073
|
+
*
|
|
20074
|
+
* @public exported from `@promptbook/core`
|
|
20075
|
+
*/
|
|
20076
|
+
function getCommitmentDefinition(type) {
|
|
20077
|
+
return COMMITMENT_REGISTRY.find((commitmentDefinition) => commitmentDefinition.type === type) || null;
|
|
20078
|
+
}
|
|
20079
|
+
|
|
20080
|
+
/**
|
|
20081
|
+
* Warning message used for unfinished commitments.
|
|
20082
|
+
*/
|
|
20083
|
+
const UNFINISHED_COMMITMENT_MESSAGE = 'This commitment is unfinished and not ready to use. Be careful when using it.';
|
|
20084
|
+
/**
|
|
20085
|
+
* Low-level warning message used for low-level commitments.
|
|
20086
|
+
*/
|
|
20087
|
+
const LOW_LEVEL_COMMITMENT_MESSAGE = 'This commitment is low-level and not used by most of the users. Be careful when using it.';
|
|
20088
|
+
/**
|
|
20089
|
+
* Short badge text used for deprecated commitments.
|
|
20090
|
+
*/
|
|
20091
|
+
const DEPRECATED_COMMITMENT_BADGE_LABEL = 'Deprecated';
|
|
20092
|
+
/**
|
|
20093
|
+
* Short badge text used for unfinished and low-level commitments.
|
|
20094
|
+
*/
|
|
20095
|
+
const LOW_LEVEL_COMMITMENT_BADGE_LABEL = 'Low-level';
|
|
20096
|
+
/**
|
|
20097
|
+
* Longer label used for deprecated commitments.
|
|
20098
|
+
*/
|
|
20099
|
+
const DEPRECATED_COMMITMENT_DETAIL_LABEL = 'Deprecated commitment';
|
|
20100
|
+
/**
|
|
20101
|
+
* Longer label used for unfinished and low-level commitments.
|
|
20102
|
+
*/
|
|
20103
|
+
const LOW_LEVEL_COMMITMENT_DETAIL_LABEL = 'Low-level commitment';
|
|
20104
|
+
/**
|
|
20105
|
+
* Resolves the notice metadata for deprecated, unfinished, or low-level commitments.
|
|
20106
|
+
*
|
|
20107
|
+
* @param definition - Commitment definition to inspect.
|
|
20108
|
+
* @returns Notice metadata when the commitment should be surfaced with caution.
|
|
20109
|
+
*
|
|
20110
|
+
* @private internal utility of commitment catalog notices
|
|
20111
|
+
*/
|
|
20112
|
+
function getCommitmentNoticeMetadata(definition) {
|
|
20113
|
+
if (definition.isUnfinished) {
|
|
20114
|
+
return {
|
|
20115
|
+
kind: 'unfinished',
|
|
20116
|
+
badgeLabel: LOW_LEVEL_COMMITMENT_BADGE_LABEL,
|
|
20117
|
+
detailLabel: LOW_LEVEL_COMMITMENT_DETAIL_LABEL,
|
|
20118
|
+
message: UNFINISHED_COMMITMENT_MESSAGE,
|
|
20119
|
+
};
|
|
20120
|
+
}
|
|
20121
|
+
if (definition.isLowLevel) {
|
|
20122
|
+
return {
|
|
20123
|
+
kind: 'lowLevel',
|
|
20124
|
+
badgeLabel: LOW_LEVEL_COMMITMENT_BADGE_LABEL,
|
|
20125
|
+
detailLabel: LOW_LEVEL_COMMITMENT_DETAIL_LABEL,
|
|
20126
|
+
message: LOW_LEVEL_COMMITMENT_MESSAGE,
|
|
20127
|
+
};
|
|
20128
|
+
}
|
|
20129
|
+
if (definition.deprecation) {
|
|
20130
|
+
return {
|
|
20131
|
+
kind: 'deprecated',
|
|
20132
|
+
badgeLabel: DEPRECATED_COMMITMENT_BADGE_LABEL,
|
|
20133
|
+
detailLabel: DEPRECATED_COMMITMENT_DETAIL_LABEL,
|
|
20134
|
+
message: definition.deprecation.message,
|
|
20135
|
+
};
|
|
20136
|
+
}
|
|
20137
|
+
return null;
|
|
20138
|
+
}
|
|
20139
|
+
|
|
20140
|
+
/**
|
|
20141
|
+
* Creates Book editor diagnostics for deprecated, unfinished, and low-level commitment keywords.
|
|
20142
|
+
*
|
|
20143
|
+
* The notice metadata is UI-only. This helper surfaces it in Monaco so legacy,
|
|
20144
|
+
* unfinished, and low-level commitments remain functional while still guiding
|
|
20145
|
+
* authors toward preferred replacements or cautioning them about low-level
|
|
20146
|
+
* usage.
|
|
20147
|
+
*
|
|
20148
|
+
* @param agentSource - Current editor content.
|
|
20149
|
+
* @returns Warning markers for deprecated, unfinished, and low-level commitment keywords.
|
|
19914
20150
|
*
|
|
19915
20151
|
* @private internal utility of `BookEditorMonaco`
|
|
19916
20152
|
*/
|
|
19917
|
-
function createDeprecatedCommitmentDiagnostics(
|
|
19918
|
-
|
|
20153
|
+
function createDeprecatedCommitmentDiagnostics(agentSource) {
|
|
20154
|
+
var _a;
|
|
20155
|
+
if (!(agentSource === null || agentSource === void 0 ? void 0 : agentSource.trim())) {
|
|
20156
|
+
return [];
|
|
20157
|
+
}
|
|
20158
|
+
const parsed = parseAgentSourceWithCommitments(agentSource);
|
|
20159
|
+
const diagnostics = [];
|
|
20160
|
+
for (const commitment of parsed.commitments) {
|
|
20161
|
+
const definition = getCommitmentDefinition(commitment.type);
|
|
20162
|
+
const notice = definition ? getCommitmentNoticeMetadata(definition) : null;
|
|
20163
|
+
if (!definition || !notice) {
|
|
20164
|
+
continue;
|
|
20165
|
+
}
|
|
20166
|
+
const typeMatch = definition.createTypeRegex().exec(commitment.originalLine);
|
|
20167
|
+
if (!((_a = typeMatch === null || typeMatch === void 0 ? void 0 : typeMatch.groups) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
20168
|
+
continue;
|
|
20169
|
+
}
|
|
20170
|
+
const matchedType = typeMatch.groups.type;
|
|
20171
|
+
const leadingCharactersCount = typeMatch[0].length - matchedType.length;
|
|
20172
|
+
const startColumn = leadingCharactersCount + 1;
|
|
20173
|
+
const endColumn = startColumn + matchedType.length;
|
|
20174
|
+
// Keep the diagnostic sentence compact while reusing the shared notice copy.
|
|
20175
|
+
const message = notice.kind === 'deprecated'
|
|
20176
|
+
? `\`${commitment.type}\` is deprecated. ${notice.message}`
|
|
20177
|
+
: `\`${commitment.type}\` is ${notice.message.replace(/^This commitment is\s+/u, '')}`;
|
|
20178
|
+
diagnostics.push({
|
|
20179
|
+
startLineNumber: commitment.lineNumber,
|
|
20180
|
+
startColumn,
|
|
20181
|
+
endLineNumber: commitment.lineNumber,
|
|
20182
|
+
endColumn,
|
|
20183
|
+
message,
|
|
20184
|
+
source: 'Promptbook',
|
|
20185
|
+
severity: 'warning',
|
|
20186
|
+
});
|
|
20187
|
+
}
|
|
20188
|
+
return diagnostics;
|
|
20189
|
+
}
|
|
20190
|
+
|
|
20191
|
+
/**
|
|
20192
|
+
* Commitment declaring the parent agent one book inherits from.
|
|
20193
|
+
*
|
|
20194
|
+
* @private internal constant of `createDuplicateFromCommitmentDiagnostics`
|
|
20195
|
+
*/
|
|
20196
|
+
const FROM_COMMITMENT_TYPE = 'FROM';
|
|
20197
|
+
/**
|
|
20198
|
+
* Creates Book editor diagnostics for a parent agent declared by more than one `FROM` commitment.
|
|
20199
|
+
*
|
|
20200
|
+
* Repeating `FROM` stays valid — the last one wins and overrides every earlier one — but an author who writes it
|
|
20201
|
+
* twice usually means only one of them, so every `FROM` keyword is marked to show which one actually applies.
|
|
20202
|
+
*
|
|
20203
|
+
* @param agentSource - Current editor content.
|
|
20204
|
+
* @returns Warning markers for every `FROM` keyword, empty when the book declares at most one parent.
|
|
20205
|
+
*
|
|
20206
|
+
* @private internal utility of `BookEditorMonaco`
|
|
20207
|
+
*/
|
|
20208
|
+
function createDuplicateFromCommitmentDiagnostics(agentSource) {
|
|
20209
|
+
if (!(agentSource === null || agentSource === void 0 ? void 0 : agentSource.trim())) {
|
|
20210
|
+
return [];
|
|
20211
|
+
}
|
|
20212
|
+
const fromCommitments = parseAgentSourceWithCommitments(agentSource).commitments.filter((commitment) => commitment.type === FROM_COMMITMENT_TYPE);
|
|
20213
|
+
if (fromCommitments.length < 2) {
|
|
20214
|
+
return [];
|
|
20215
|
+
}
|
|
20216
|
+
const lastFromCommitment = fromCommitments[fromCommitments.length - 1];
|
|
20217
|
+
return fromCommitments.map((fromCommitment) => {
|
|
20218
|
+
const startColumn = fromCommitment.originalLine.indexOf(FROM_COMMITMENT_TYPE) + 1;
|
|
20219
|
+
const isEffectiveFromCommitment = fromCommitment === lastFromCommitment;
|
|
20220
|
+
const message = isEffectiveFromCommitment
|
|
20221
|
+
? `\`${FROM_COMMITMENT_TYPE}\` is written ${fromCommitments.length} times in this book. Only this last one is used, the earlier ones are ignored.`
|
|
20222
|
+
: `\`${FROM_COMMITMENT_TYPE}\` is written ${fromCommitments.length} times in this book. Only the last one on line ${lastFromCommitment.lineNumber} is used, so this one is ignored.`;
|
|
20223
|
+
return {
|
|
20224
|
+
startLineNumber: fromCommitment.lineNumber,
|
|
20225
|
+
startColumn,
|
|
20226
|
+
endLineNumber: fromCommitment.lineNumber,
|
|
20227
|
+
endColumn: startColumn + FROM_COMMITMENT_TYPE.length,
|
|
20228
|
+
message,
|
|
20229
|
+
source: 'Promptbook',
|
|
20230
|
+
severity: 'warning',
|
|
20231
|
+
};
|
|
20232
|
+
});
|
|
20233
|
+
}
|
|
20234
|
+
|
|
20235
|
+
/**
|
|
20236
|
+
* Creates Book editor diagnostics for uppercase commitments not registered by Promptbook.
|
|
20237
|
+
*
|
|
20238
|
+
* Unknown commitment blocks remain valid extra context in the generated system message,
|
|
20239
|
+
* but the editor marks their keywords so authors can spot likely typos immediately.
|
|
20240
|
+
*
|
|
20241
|
+
* @param agentSource - Current editor content.
|
|
20242
|
+
* @returns Error markers for all unknown commitment keywords.
|
|
20243
|
+
*
|
|
20244
|
+
* @private internal utility of `BookEditorMonaco`
|
|
20245
|
+
*/
|
|
20246
|
+
function createUnknownCommitmentDiagnostics(agentSource) {
|
|
20247
|
+
if (!(agentSource === null || agentSource === void 0 ? void 0 : agentSource.trim())) {
|
|
20248
|
+
return [];
|
|
20249
|
+
}
|
|
20250
|
+
return parseAgentSourceWithCommitments(agentSource).unknownCommitments.map((commitment) => {
|
|
20251
|
+
const startColumn = commitment.originalLine.indexOf(commitment.type) + 1;
|
|
20252
|
+
return {
|
|
20253
|
+
startLineNumber: commitment.lineNumber,
|
|
20254
|
+
startColumn,
|
|
20255
|
+
endLineNumber: commitment.lineNumber,
|
|
20256
|
+
endColumn: startColumn + commitment.type.length,
|
|
20257
|
+
message: `Unknown commitment \`${commitment.type}\` is added to the system message as extra context.`,
|
|
20258
|
+
source: 'Promptbook',
|
|
20259
|
+
severity: 'error',
|
|
20260
|
+
};
|
|
20261
|
+
});
|
|
19919
20262
|
}
|
|
19920
20263
|
|
|
19921
20264
|
/**
|
|
@@ -20364,7 +20707,7 @@ const AGENT_REFERENCE_COMMITMENT_TYPES = ['FROM', 'IMPORT', 'IMPORTS', 'TEAM'];
|
|
|
20364
20707
|
*
|
|
20365
20708
|
* @private function of BookEditorMonaco
|
|
20366
20709
|
*/
|
|
20367
|
-
const DYNAMIC_COMMITMENT_REGEX =
|
|
20710
|
+
const DYNAMIC_COMMITMENT_REGEX = createBookCommitmentLineTypeRegex();
|
|
20368
20711
|
/**
|
|
20369
20712
|
* Regex pattern to match horizontal lines.
|
|
20370
20713
|
*
|
|
@@ -21101,64 +21444,64 @@ function useBookEditorMonacoStyles({ instanceClass, scaledLineHeight, scaledCont
|
|
|
21101
21444
|
style.id = styleId;
|
|
21102
21445
|
document.head.appendChild(style);
|
|
21103
21446
|
}
|
|
21104
|
-
style.innerHTML = `
|
|
21105
|
-
|
|
21106
|
-
|
|
21107
|
-
|
|
21108
|
-
|
|
21109
|
-
|
|
21110
|
-
|
|
21111
|
-
|
|
21112
|
-
|
|
21113
|
-
|
|
21114
|
-
|
|
21115
|
-
|
|
21116
|
-
|
|
21117
|
-
|
|
21118
|
-
|
|
21119
|
-
|
|
21120
|
-
|
|
21121
|
-
|
|
21122
|
-
|
|
21123
|
-
|
|
21124
|
-
|
|
21125
|
-
|
|
21126
|
-
|
|
21127
|
-
|
|
21128
|
-
|
|
21129
|
-
|
|
21130
|
-
|
|
21131
|
-
|
|
21132
|
-
|
|
21133
|
-
|
|
21134
|
-
|
|
21135
|
-
|
|
21136
|
-
|
|
21137
|
-
|
|
21138
|
-
|
|
21139
|
-
|
|
21140
|
-
|
|
21141
|
-
|
|
21142
|
-
|
|
21143
|
-
|
|
21144
|
-
|
|
21145
|
-
|
|
21146
|
-
|
|
21147
|
-
|
|
21148
|
-
|
|
21149
|
-
|
|
21150
|
-
|
|
21151
|
-
|
|
21152
|
-
|
|
21153
|
-
|
|
21154
|
-
|
|
21155
|
-
|
|
21156
|
-
|
|
21157
|
-
|
|
21158
|
-
|
|
21159
|
-
|
|
21160
|
-
|
|
21161
|
-
|
|
21447
|
+
style.innerHTML = spaceTrim$1(`
|
|
21448
|
+
|
|
21449
|
+
@import url('https://fonts.googleapis.com/css2?family=Bitcount+Grid+Single:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
|
|
21450
|
+
/* <- [🚚] */
|
|
21451
|
+
|
|
21452
|
+
.${instanceClass} .monaco-editor .view-lines {
|
|
21453
|
+
background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${lineColor} ${scaledLineHeight - 1}px);
|
|
21454
|
+
background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
|
|
21455
|
+
background-position-x: -${scaledContentPaddingLeft}px;
|
|
21456
|
+
background-position-y: ${scaledLineHeight * BACKGROUND_POSITION_Y_MULTIPLIER}px;
|
|
21457
|
+
}
|
|
21458
|
+
.${instanceClass} .monaco-editor .overflow-guard::before {
|
|
21459
|
+
content: '';
|
|
21460
|
+
position: absolute;
|
|
21461
|
+
left: ${scaledVerticalLineLeft}px;
|
|
21462
|
+
top: 0;
|
|
21463
|
+
bottom: 0;
|
|
21464
|
+
width: 1px;
|
|
21465
|
+
background-color: ${lineColor};
|
|
21466
|
+
z-index: 10;
|
|
21467
|
+
}
|
|
21468
|
+
|
|
21469
|
+
.${instanceClass} .monaco-editor .separator-line {
|
|
21470
|
+
background: linear-gradient(
|
|
21471
|
+
to bottom,
|
|
21472
|
+
transparent ${scaledLineHeight * 0.9 - 2}px,
|
|
21473
|
+
${separatorColor} ${scaledLineHeight * 0.9 - 2}px,
|
|
21474
|
+
${separatorColor} ${scaledLineHeight * 0.9 + 1}px,
|
|
21475
|
+
transparent ${scaledLineHeight * 0.9 + 1}px
|
|
21476
|
+
);
|
|
21477
|
+
}
|
|
21478
|
+
|
|
21479
|
+
.${instanceClass} .monaco-editor .transparent-text {
|
|
21480
|
+
color: transparent !important;
|
|
21481
|
+
}
|
|
21482
|
+
|
|
21483
|
+
.${instanceClass} .monaco-editor .code-block-box {
|
|
21484
|
+
background-color: ${codeBlockBackground};
|
|
21485
|
+
border-left: 1px solid ${codeBlockBorderColor};
|
|
21486
|
+
border-right: 1px solid ${codeBlockBorderColor};
|
|
21487
|
+
padding-left: ${Math.round(8 * zoomLevel)}px;
|
|
21488
|
+
padding-right: ${Math.round(8 * zoomLevel)}px;
|
|
21489
|
+
}
|
|
21490
|
+
|
|
21491
|
+
.${instanceClass} .monaco-editor .code-block-top {
|
|
21492
|
+
border-top: 1px solid ${codeBlockBorderColor};
|
|
21493
|
+
border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
21494
|
+
border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
21495
|
+
overflow: hidden;
|
|
21496
|
+
}
|
|
21497
|
+
|
|
21498
|
+
.${instanceClass} .monaco-editor .code-block-bottom {
|
|
21499
|
+
border-bottom: 1px solid ${codeBlockBorderColor};
|
|
21500
|
+
border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
21501
|
+
border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
21502
|
+
overflow: hidden;
|
|
21503
|
+
}
|
|
21504
|
+
`);
|
|
21162
21505
|
return () => {
|
|
21163
21506
|
if (process.env.NODE_ENV === 'production') {
|
|
21164
21507
|
style === null || style === void 0 ? void 0 : style.remove();
|
|
@@ -22067,7 +22410,12 @@ function BookEditorMonaco(props) {
|
|
|
22067
22410
|
editor,
|
|
22068
22411
|
handleFiles,
|
|
22069
22412
|
});
|
|
22070
|
-
const combinedDiagnostics = [
|
|
22413
|
+
const combinedDiagnostics = [
|
|
22414
|
+
...(diagnostics || []),
|
|
22415
|
+
...createDeprecatedCommitmentDiagnostics(value),
|
|
22416
|
+
...createUnknownCommitmentDiagnostics(value),
|
|
22417
|
+
...createDuplicateFromCommitmentDiagnostics(value),
|
|
22418
|
+
];
|
|
22071
22419
|
const isActionBarVisible = isBookEditorMonacoActionbarVisible({
|
|
22072
22420
|
hoistedMenuItems,
|
|
22073
22421
|
isUploadButtonShown,
|
|
@@ -22984,8 +23332,8 @@ function useChatRatings(options) {
|
|
|
22984
23332
|
};
|
|
22985
23333
|
}
|
|
22986
23334
|
|
|
22987
|
-
var css_248z$7 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:170px;--chat-message-avatar-gap:14px;--chat-message-avatar-size:42px;--chat-message-max-width:min(72%,680px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-bubble-radius:24px;--chat-bubble-shadow:0 12px 34px rgba(15,23,42,.16);--chat-bubble-shadow-hover:0 18px 42px rgba(15,23,42,.2);--chat-bubble-border-color:hsla(0,0%,100%,.34);--chat-bubble-font-size:15px;--chat-bubble-line-height:1.62;--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);--chat-message-meta-color:rgba(71,85,105,.85);--chat-message-lifecycle-badge-background:rgba(148,163,184,.16);--chat-message-lifecycle-badge-color:#475569;--chat-participant-label-color:rgba(71,85,105,.82);--chat-message-control-background:hsla(0,0%,100%,.28);--chat-message-control-border-color:hsla(0,0%,100%,.46);--chat-message-control-hover-background:hsla(0,0%,100%,.36);--chat-message-control-hover-border-color:hsla(0,0%,100%,.76);--chat-message-control-color:#111;--chat-message-control-shadow:0 2px 8px rgba(15,23,42,.16);--chat-message-control-hover-shadow:0 5px 14px rgba(15,23,42,.22);--chat-message-control-spinner-border-color:rgba(0,0,0,.3);--chat-message-control-spinner-accent-color:#111;--chat-article-control-background:#f8fafc;--chat-article-control-border-color:rgba(148,163,184,.65);--chat-article-control-hover-background:#fff;--chat-article-control-hover-border-color:rgba(100,116,139,.82);--chat-article-control-hover-shadow:0 2px 8px rgba(15,23,42,.12);--chat-article-rating-background:rgba(248,250,252,.9);--chat-article-rating-border-color:rgba(148,163,184,.5);--chat-article-rating-hover-background:rgba(241,245,249,.94);--chat-article-rating-hover-border-color:rgba(100,116,139,.62);--chat-article-rating-shadow:none;--chat-input-border-color:rgba(148,163,184,.14);--chat-input-backdrop:linear-gradient(180deg,rgba(248,250,252,0),rgba(248,250,252,.9) 44%,rgba(248,250,252,.96));--chat-full-page-input-backdrop:linear-gradient(180deg,hsla(0,0%,100%,.02),hsla(0,0%,100%,.86) 60%,hsla(0,0%,100%,.95));--chat-input-drag-over-backdrop:linear-gradient(180deg,rgba(56,189,248,.04),rgba(14,165,233,.13));--chat-input-container-background:linear-gradient(150deg,hsla(0,0%,100%,.98),rgba(248,250,252,.94));--chat-input-container-border-color:rgba(148,163,184,.3);--chat-input-container-shadow:0 14px 34px rgba(15,23,42,.12),inset 0 1px 0 hsla(0,0%,100%,.9);--chat-input-text-color:#0f172a;--chat-input-placeholder-color:#8b9bb1;--chat-input-action-color:#64748b;--chat-input-action-hover-background:#f1f5f9;--chat-input-action-hover-color:#0f172a;--chat-file-preview-background:hsla(0,0%,49%,.1);--chat-file-preview-border-color:hsla(0,0%,49%,.2);--chat-file-preview-hover-background:hsla(0,0%,49%,.15);--chat-file-preview-hover-border-color:hsla(0,0%,49%,.3);--chat-file-name-color:#000;--chat-file-size-color:#6b7280;--chat-dictation-panel-background:hsla(0,0%,100%,.9);--chat-dictation-panel-border-color:rgba(148,163,184,.35);--chat-dictation-panel-color:#0f172a;--chat-dictation-title-color:#475569;--chat-dictation-toggle-background:#f8fafc;--chat-dictation-toggle-color:#334155;--chat-dictation-transcript-background:rgba(239,246,255,.9);--chat-dictation-transcript-color:#0c4a6e;--chat-dictation-settings-color:#334155;--chat-dictation-fallback-color:#475569;--chat-reply-composer-background:hsla(0,0%,100%,.92);--chat-reply-composer-border-color:rgba(148,163,184,.3);--chat-reply-composer-shadow:0 10px 24px rgba(15,23,42,.08);--chat-reply-dismiss-background:rgba(148,163,184,.14);--chat-reply-dismiss-hover-background:rgba(148,163,184,.24);--chat-reply-dismiss-color:#475569;--chat-reply-dismiss-hover-color:#0f172a;--chat-speech-status-background:hsla(0,0%,100%,.95);--chat-speech-status-border-color:rgba(15,23,42,.15);--chat-speech-status-color:#0f172a;--chat-speech-status-shadow:0 12px 28px rgba(15,23,42,.18);--chat-speech-status-dot-background:#64748b;--chat-dictation-action-background:#f8fafc;--chat-dictation-action-border-color:rgba(148,163,184,.35);--chat-dictation-action-color:#0f172a;--chat-dictation-correction-label-color:#334155;--chat-dictation-correction-textarea-background:#fff;--chat-dictation-correction-textarea-color:#0f172a;--chat-dictation-correction-textarea-border-color:rgba(148,163,184,.35);display:flex;flex-direction:column;font-family:var(\n --chat-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n ),\"OpenMojiColor\",\"OpenMojiBlack\";height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_Chat__j2eE5[data-chat-theme=dark]{--chat-bubble-shadow:0 14px 34px rgba(2,6,23,.38);--chat-bubble-shadow-hover:0 18px 42px rgba(2,6,23,.48);--chat-bubble-border-color:rgba(148,163,184,.2);--chat-message-meta-color:rgba(148,163,184,.84);--chat-message-lifecycle-badge-background:rgba(148,163,184,.14);--chat-message-lifecycle-badge-color:#cbd5e1;--chat-participant-label-color:rgba(203,213,225,.76);--chat-message-control-background:rgba(15,23,42,.78);--chat-message-control-border-color:rgba(148,163,184,.4);--chat-message-control-hover-background:rgba(30,41,59,.96);--chat-message-control-hover-border-color:rgba(148,163,184,.72);--chat-message-control-color:#e2e8f0;--chat-message-control-shadow:0 10px 24px rgba(2,6,23,.34);--chat-message-control-hover-shadow:0 12px 28px rgba(2,6,23,.42);--chat-message-control-spinner-border-color:rgba(226,232,240,.3);--chat-message-control-spinner-accent-color:#e2e8f0;--chat-article-control-background:rgba(15,23,42,.86);--chat-article-control-border-color:rgba(71,85,105,.95);--chat-article-control-hover-background:rgba(30,41,59,.98);--chat-article-control-hover-border-color:rgba(148,163,184,.72);--chat-article-control-hover-shadow:0 12px 26px rgba(2,6,23,.32);--chat-article-rating-background:rgba(15,23,42,.86);--chat-article-rating-border-color:rgba(71,85,105,.95);--chat-article-rating-hover-background:rgba(30,41,59,.98);--chat-article-rating-hover-border-color:rgba(148,163,184,.72);--chat-article-rating-shadow:0 12px 26px rgba(2,6,23,.32);--chat-input-border-color:rgba(51,65,85,.78);--chat-input-backdrop:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.82) 48%,rgba(2,6,23,.96));--chat-full-page-input-backdrop:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.88) 58%,rgba(2,6,23,.98));--chat-input-drag-over-backdrop:linear-gradient(180deg,rgba(14,165,233,.08),rgba(8,47,73,.5));--chat-input-container-background:linear-gradient(150deg,rgba(15,23,42,.96),rgba(15,23,42,.9));--chat-input-container-border-color:rgba(71,85,105,.88);--chat-input-container-shadow:0 20px 44px rgba(2,6,23,.42),inset 0 1px 0 rgba(148,163,184,.1);--chat-input-text-color:#e2e8f0;--chat-input-placeholder-color:#94a3b8;--chat-input-action-color:#cbd5e1;--chat-input-action-hover-background:rgba(51,65,85,.78);--chat-input-action-hover-color:#f8fafc;--chat-file-preview-background:rgba(15,23,42,.78);--chat-file-preview-border-color:rgba(71,85,105,.72);--chat-file-preview-hover-background:rgba(30,41,59,.86);--chat-file-preview-hover-border-color:rgba(148,163,184,.42);--chat-file-name-color:#e2e8f0;--chat-file-size-color:#94a3b8;--chat-dictation-panel-background:rgba(15,23,42,.94);--chat-dictation-panel-border-color:rgba(71,85,105,.8);--chat-dictation-panel-color:#e2e8f0;--chat-dictation-title-color:#cbd5e1;--chat-dictation-toggle-background:rgba(30,41,59,.92);--chat-dictation-toggle-color:#e2e8f0;--chat-dictation-transcript-background:rgba(8,47,73,.64);--chat-dictation-transcript-color:#bae6fd;--chat-dictation-settings-color:#cbd5e1;--chat-dictation-fallback-color:#94a3b8;--chat-reply-composer-background:rgba(15,23,42,.94);--chat-reply-composer-border-color:rgba(71,85,105,.8);--chat-reply-composer-shadow:0 14px 28px rgba(2,6,23,.32);--chat-reply-dismiss-background:rgba(51,65,85,.76);--chat-reply-dismiss-hover-background:rgba(71,85,105,.9);--chat-reply-dismiss-color:#cbd5e1;--chat-reply-dismiss-hover-color:#f8fafc;--chat-speech-status-background:rgba(15,23,42,.96);--chat-speech-status-border-color:rgba(71,85,105,.8);--chat-speech-status-color:#e2e8f0;--chat-speech-status-shadow:0 16px 34px rgba(2,6,23,.42);--chat-speech-status-dot-background:#94a3b8;--chat-dictation-action-background:rgba(30,41,59,.92);--chat-dictation-action-border-color:rgba(71,85,105,.78);--chat-dictation-action-color:#e2e8f0;--chat-dictation-correction-label-color:#cbd5e1;--chat-dictation-correction-textarea-background:rgba(8,15,28,.98);--chat-dictation-correction-textarea-color:#e2e8f0;--chat-dictation-correction-textarea-border-color:rgba(71,85,105,.78);color:#e2e8f0}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-max-width:54rem;--chat-article-layout-padding-inline:clamp(16px,4vw,40px)}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:💬;height:100%;min-height:0;min-width:0;pointer-events:none;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK>*{pointer-events:auto}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:28px 24px 18px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_articleModeChatMessages__ufofT{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ{margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{justify-content:flex-start}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:7px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.55)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:24px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{align-items:stretch;column-gap:0;justify-content:center;margin-bottom:28px;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{align-items:stretch;margin:0 auto;max-width:min(100%,860px);width:min(100%,860px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm.Chat-module_articleModeAgentAvatar__UCKDX{display:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:var(--chat-message-meta-color);display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;line-height:1.4;margin:6px 8px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageMeta__eqCRu{margin-left:0;margin-right:0}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:var(--chat-message-lifecycle-badge-background);border-radius:999px;color:var(--chat-message-lifecycle-badge-color);display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageReplyButton__S5hXM{align-items:center;background:transparent;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:5px;opacity:.88;padding:0;transition:opacity .18s ease,color .18s ease,transform .18s ease}.Chat-module_messageReplyButton__S5hXM:focus,.Chat-module_messageReplyButton__S5hXM:hover{color:#0f172a;opacity:1;transform:translateY(-.5px)}.Chat-module_messageReplyButtonIcon__2Nk3i{height:13px;width:13px}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:var(--chat-participant-label-color);font-size:11.5px;font-weight:600;letter-spacing:.07em;margin:0 0 7px;text-transform:uppercase}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{display:none}.Chat-module_citationFootnotes__LAWdh,.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,49%,.28);border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_citationFootnotes__LAWdh{align-items:flex-start;flex-direction:column}.Chat-module_citationFootnoteItem__JXTAX{align-items:center;display:inline-flex;gap:8px;min-height:32px}.Chat-module_citationFootnoteNumber__CMmm9{color:color-mix(in srgb,var(--message-text-color,#0f172a) 78%,transparent);font-size:.84rem;font-weight:700;line-height:1;min-width:1.25rem}.Chat-module_toolCallChip__koN18{align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.78) 26%);border:1px solid hsla(0,0%,49%,.3);border:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);border-radius:999px;box-shadow:0 2px 8px rgba(15,23,42,.12);color:inherit;cursor:pointer;display:flex;font-family:OpenMojiColor,OpenMojiBlack,Arial,Helvetica,sans-serif;font-size:.8rem;font-weight:600;gap:8px;padding:5px 11px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.86) 36%);box-shadow:0 4px 12px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:10px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:not(.Chat-module_isMe__nBtaV) .Chat-module_messageText__XgNyQ{border-bottom-left-radius:10px}.Chat-module_ratingStar__rRfqC{color:var(--chat-feedback-star-color,var(--star-inactive-color,#ccc));cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_feedbackStar__tC7XH{align-items:center;color:var(--chat-feedback-star-color,#ccc);display:inline-flex;justify-content:center;line-height:1}.Chat-module_feedbackStarIcon__BuPen{color:var(--chat-feedback-star-color,currentColor)!important;display:block}.Chat-module_feedbackStarIcon__BuPen,.Chat-module_feedbackStarIcon__BuPen *{fill:var(--chat-feedback-star-fill,none)!important;stroke:var(--chat-feedback-star-color,currentColor)!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-md-heading-font-family:var(\n --font-barlow-condensed,\"Barlow Condensed\",var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n );--chat-md-body-font-family:inherit;--chat-md-text-color:var(--message-text-color,#0f172a);--chat-md-link-color:#2563eb;--chat-md-muted-color:var(--message-text-color,#0f172a);--chat-md-inline-code-bg:rgba(15,23,42,.16);--chat-md-inline-code-border:rgba(15,23,42,.2);--chat-md-inline-code-color:var(--message-text-color,#0f172a);--chat-md-blockquote-bg:hsla(0,0%,100%,.2);--chat-md-blockquote-border:rgba(56,189,248,.52);--chat-md-table-bg:hsla(0,0%,100%,.22);--chat-md-table-row-alt-bg:hsla(0,0%,100%,.12);--chat-md-table-head-bg:hsla(0,0%,100%,.3);--chat-md-table-border:hsla(0,0%,100%,.36);--chat-md-citation-bg:hsla(0,0%,100%,.25);--chat-md-citation-color:var(--message-text-color,#0f172a);backdrop-filter:blur(14px);background-color:var(--message-bg-color);border:1px solid var(--chat-bubble-border-color);border-radius:var(--chat-bubble-radius);box-shadow:var(--chat-bubble-shadow),inset 0 1px 0 hsla(0,0%,100%,.16);color:var(--message-text-color);font-family:inherit;font-size:var(--chat-bubble-font-size);hyphens:auto;letter-spacing:.0025em;line-height:var(--chat-bubble-line-height);margin-bottom:6px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);overflow-wrap:anywhere;padding:16px 20px;position:relative;text-align:left;transform:translateX(var(--chat-message-swipe-offset,0));transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{--chat-md-link-color:#1d4ed8;--chat-md-inline-code-bg:rgba(15,23,42,.08);--chat-md-inline-code-border:rgba(15,23,42,.16);--chat-md-blockquote-bg:rgba(148,163,184,.12);--chat-md-table-bg:rgba(248,250,252,.9);--chat-md-table-row-alt-bg:rgba(226,232,240,.45);--chat-md-table-head-bg:rgba(241,245,249,.92);--chat-md-table-border:rgba(148,163,184,.45);--chat-md-citation-bg:rgba(191,219,254,.24);backdrop-filter:none;background:transparent!important;border:0;border-radius:0;box-shadow:none;font-size:15.5px;line-height:1.75;margin-bottom:8px;min-width:0;padding:2px 0}.Chat-module_replyEnabledMessageText__-SV9f{touch-action:pan-y}.Chat-module_replySwipeActive__dhAqt{box-shadow:var(--chat-bubble-shadow-hover),0 0 0 1px rgba(56,189,248,.22),inset 0 1px 0 hsla(0,0%,100%,.16)}.Chat-module_replySwipeIndicator__u92JU{color:rgba(15,23,42,.45);left:-24px;opacity:.22;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .18s ease,transform .18s ease}.Chat-module_replySwipeIndicatorRight__3CoAW{left:auto;right:-24px}.Chat-module_replySwipeIndicatorActive__m9gwU{opacity:.9;transform:translateY(-50%) scale(1.05)}.Chat-module_replySwipeIndicatorIcon__0K1SX{height:16px;width:16px}.Chat-module_replyPreview__Lt-Bg{align-items:flex-start;background:hsla(0,0%,100%,.16);border:1px solid hsla(0,0%,100%,.26);border-radius:14px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);display:flex;gap:10px;margin-bottom:12px;min-width:0;padding:10px 12px}.Chat-module_replyBubblePreview__DNe3r{opacity:.9}.Chat-module_replyComposerPreview__80Wdf{background:var(--chat-reply-composer-background);border-color:var(--chat-reply-composer-border-color);box-shadow:var(--chat-reply-composer-shadow);margin-bottom:2px}.Chat-module_replyPreviewAccent__Uo3pe{align-self:stretch;background:#0ea5e9;background:color-mix(in srgb,var(--brand-color,#0ea5e9) 84%,#fff 16%);border-radius:999px;flex-shrink:0;width:4px}.Chat-module_replyPreviewBody__reKG-{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.Chat-module_replyPreviewHeading__IeegE{font-size:11px;line-height:1.3;opacity:.82}.Chat-module_replyPreviewLabel__J-BrF{font-weight:600}.Chat-module_replyPreviewSender__z6SYu{font-weight:700}.Chat-module_replyPreviewText__cY-Hc{font-size:12.5px;line-height:1.35;min-width:0;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_replyPreviewDismissButton__-L9MF{align-items:center;background:var(--chat-reply-dismiss-background);border:none;border-radius:999px;color:var(--chat-reply-dismiss-color);cursor:pointer;display:inline-flex;flex-shrink:0;height:28px;justify-content:center;transition:background .18s ease,color .18s ease,transform .18s ease;width:28px}.Chat-module_replyPreviewDismissButton__-L9MF:focus,.Chat-module_replyPreviewDismissButton__-L9MF:hover{background:var(--chat-reply-dismiss-hover-background);color:var(--chat-reply-dismiss-hover-color);transform:scale(1.02)}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-bubble-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 72%,hsla(0,0%,100%,.46) 28%);--chat-md-link-color:color-mix(in srgb,var(--message-text-color,#0f172a) 72%,#7dd3fc 28%);--chat-md-muted-color:color-mix(in srgb,var(--message-text-color,#0f172a) 84%,transparent);--chat-md-inline-code-bg:color-mix(in srgb,var(--message-bg-color,#fff) 65%,rgba(15,23,42,.2) 35%);--chat-md-inline-code-border:color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);--chat-md-blockquote-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.86) 22%);--chat-md-blockquote-border:color-mix(in srgb,var(--message-text-color,#0f172a) 34%,#7dd3fc 66%);--chat-md-table-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.9) 22%);--chat-md-table-row-alt-bg:color-mix(in srgb,var(--message-bg-color,#fff) 70%,hsla(0,0%,100%,.82) 30%);--chat-md-table-head-bg:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.94) 36%);--chat-md-table-border:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);--chat-md-citation-bg:color-mix(in srgb,var(--message-bg-color,#fff) 55%,hsla(0,0%,100%,.94) 45%);background:linear-gradient(158deg,color-mix(in srgb,var(--message-bg-color,#fff) 86%,hsla(0,0%,100%,.3) 14%),color-mix(in srgb,var(--message-bg-color,#fff) 95%,rgba(2,6,23,.08) 5%))}}.Chat-module_copyButtonContainer__Rij0U{opacity:0;pointer-events:none;position:absolute;right:12px;top:10px;transform:translateY(-2px);transition:opacity .18s ease,transform .18s ease;z-index:3}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.Chat-module_articleModeMessageActions__h2qaG{align-items:center;border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:flex-start;margin-top:14px;padding-top:12px}.Chat-module_articleModeMessageControls__hncCw{opacity:1;pointer-events:auto;position:static;right:auto;top:auto;transform:none;z-index:auto}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:7px;pointer-events:auto}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL{background:var(--chat-article-control-background);border-color:var(--chat-article-control-border-color);box-shadow:none;color:var(--chat-message-control-color)}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:focus,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:hover,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL:hover:not(:disabled){background:var(--chat-article-control-hover-background);border-color:var(--chat-article-control-hover-border-color);box-shadow:var(--chat-article-control-hover-shadow)}.Chat-module_copyButton__DcxT5{backdrop-filter:blur(8px);border:1px solid var(--chat-message-control-border-color);box-shadow:var(--chat-message-control-shadow);display:flex;opacity:1;padding:4px 7px;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_copyButton__DcxT5,.Chat-module_playButton__ZigYL{align-items:center;background:var(--chat-message-control-background);border-radius:10px;color:var(--chat-message-control-color);cursor:pointer;position:relative}.Chat-module_playButton__ZigYL{border:1px solid var(--chat-message-control-border-color);display:inline-flex;height:34px;justify-content:center;padding:0;transition:all .15s ease;width:34px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid var(--chat-message-control-spinner-border-color);border-radius:50%;border-top-color:var(--chat-message-control-spinner-accent-color);height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:var(--chat-message-control-hover-background);border-color:var(--chat-message-control-hover-border-color);box-shadow:var(--chat-message-control-hover-shadow)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{background:var(--chat-message-control-hover-background);border:1px solid var(--chat-message-control-hover-border-color);box-shadow:var(--chat-message-control-hover-shadow);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_copyButton__DcxT5 svg rect{fill:#cbd5e1;stroke:#94a3b8}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:var(--chat-bubble-shadow-hover),inset 0 1px 0 hsla(0,0%,100%,.16);transform:translateX(var(--chat-message-swipe-offset,0)) translateY(-1.5px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP:hover{box-shadow:none;transform:none}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.28);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 12%,transparent);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.8) 26%);border:1px solid hsla(0,0%,49%,.3);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 16%,transparent);border-radius:999px;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:12.5px;gap:6px;line-height:inherit;max-width:200px;padding:7px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachmentWithRemove__n2-O6{gap:0;overflow:hidden;padding:0}.Chat-module_attachmentMainAction__Onkl3{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:6px;line-height:inherit;min-width:0;padding:7px 8px 7px 12px;text-decoration:none}.Chat-module_attachmentRemoveButton__dC5ne{align-items:center;background:hsla(0,0%,100%,.24);border:0;border-radius:999px;color:inherit;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;justify-content:center;margin-right:5px;opacity:.85;transition:background .2s ease,opacity .2s ease,transform .2s ease;width:22px}.Chat-module_attachmentRemoveButton__dC5ne:hover{background:rgba(239,68,68,.18);opacity:1;transform:scale(1.04)}.Chat-module_attachmentRemoveButton__dC5ne svg{height:12px;width:12px}.Chat-module_attachmentWithRemove__n2-O6 .Chat-module_attachmentName__aMx56{min-width:0}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 62%,hsla(0,0%,100%,.9) 38%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 24%,transparent);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.36);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.2);background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border:1px solid hsla(0,0%,49%,.9);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);border-radius:999px;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;letter-spacing:.01em;padding:8px 15px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:hsla(0,0%,100%,.3);background:color-mix(in srgb,var(--message-bg-color,#fff) 66%,hsla(0,0%,100%,.9) 34%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 26%,#7dd3fc 74%);box-shadow:0 5px 14px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm{backdrop-filter:none;background:var(--chat-article-rating-background);border:1px solid var(--chat-article-rating-border-color);border-radius:999px;bottom:auto;min-width:0;opacity:1;padding:4px 8px;position:static;right:auto;transform:none;z-index:auto}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm:hover{background:var(--chat-article-rating-hover-background);border-color:var(--chat-article-rating-hover-border-color);box-shadow:var(--chat-article-rating-shadow);padding:4px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_feedbackIssueButton__9NrrF{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-family:OpenMojiBlack,Noto Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:16px;justify-content:center;line-height:1;padding:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(20px);background:var(--chat-input-backdrop);border-top:1px solid var(--chat-input-border-color);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:20px 24px calc(20px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_articleModeChatInput__zBTV4{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatInput__zBTV4>:not(.Chat-module_speechStatusBubble__qBBWI):not(.Chat-module_dragOverlay__SEGoS){margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{background:var(--chat-full-page-input-backdrop)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:var(--chat-input-drag-over-backdrop)}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreviewContainer__R70hm.Chat-module_attachments__m1Fts{--message-bg-color:var(--input-bg-color);--message-text-color:var(--input-text-color);border-top:0;color:var(--input-text-color);margin-top:0;padding-top:0}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:var(--chat-file-preview-background);border:1px solid var(--chat-file-preview-border-color);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:var(--chat-file-preview-hover-background);border-color:var(--chat-file-preview-hover-border-color)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:var(--chat-file-name-color);font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:var(--chat-file-size-color);font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:var(--chat-input-container-background);border:1px solid var(--chat-input-container-border-color);border-radius:26px;box-shadow:var(--chat-input-container-shadow);display:flex;gap:10px;min-width:0;padding:9px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color,#0ea5e9);border-color:color-mix(in srgb,var(--brand-color,#0ea5e9) 58%,rgba(15,23,42,.2) 42%);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px rgba(14,165,233,.16);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px color-mix(in srgb,var(--brand-color,#0ea5e9) 16%,transparent);transform:translateY(-1px)}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_inputContainer__bPt99:focus-within{border-color:rgba(125,211,252,.6);box-shadow:0 20px 44px rgba(2,6,23,.48),0 0 0 4px rgba(14,165,233,.18)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:var(--chat-input-placeholder-color);opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--chat-input-action-color);cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:var(--chat-input-action-hover-background);color:var(--chat-input-action-hover-color)}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--chat-input-action-color);cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:var(--chat-input-action-hover-background);color:var(--chat-input-action-hover-color)}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:var(--chat-speech-status-background);border-radius:999px;border-style:solid;border-width:1px;border:1px solid var(--chat-speech-status-border-color);bottom:86px;box-shadow:var(--chat-speech-status-shadow);color:var(--chat-speech-status-color);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:var(--chat-speech-status-dot-background);border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleRecording__faJs2{background:rgba(127,29,29,.72);border-color:hsla(0,91%,71%,.44);color:#fecaca}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(8,47,73,.74);border-color:rgba(125,211,252,.44);color:#bae6fd}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleError__Nd-Aj{background:rgba(127,29,29,.82);border-color:hsla(0,91%,71%,.5);color:#fecaca}.Chat-module_dictationPanel__kzbyG{background:var(--chat-dictation-panel-background);border:1px solid var(--chat-dictation-panel-border-color);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:var(--chat-dictation-panel-color);display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:var(--chat-dictation-title-color);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:var(--chat-dictation-toggle-background);border:1px solid var(--chat-dictation-panel-border-color);border-radius:10px;color:var(--chat-dictation-toggle-color);cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:var(--chat-dictation-transcript-background);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:var(--chat-dictation-transcript-color);cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:var(--chat-dictation-action-background);border:1px solid var(--chat-dictation-action-border-color);border-radius:10px;color:var(--chat-dictation-action-color);cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:var(--chat-dictation-correction-label-color);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:var(--chat-dictation-correction-textarea-background);border:1px solid var(--chat-dictation-correction-textarea-border-color);border-radius:10px;color:var(--chat-dictation-correction-textarea-color);font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:var(--chat-dictation-settings-color);display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:var(--chat-dictation-fallback-color);font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:var(--chat-input-text-color);flex:1;font-family:inherit;font-size:var(--chat-input-font-size);font-weight:500;height:var(--chat-input-textarea-height);letter-spacing:.002em;line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:var(--chat-input-placeholder-color);opacity:.9}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;background-color:rgba(15,23,42,.76);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{opacity:0}to{opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_ratingModal__XVKYm[data-chat-modal=citation-browser],.Chat-module_ratingModal__XVKYm[data-chat-modal=image-attachment]{box-sizing:border-box;padding:24px}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_citationBrowserModal__jYU4c{background:#f8fafc;display:flex;flex-direction:column;margin:0;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);max-width:800px;overflow:hidden;padding:0;width:min(90vw,800px)}.Chat-module_citationBrowserModalBody__lvTWb{display:flex;flex:1 1 auto;min-height:0}.Chat-module_imageAttachmentModal__Ef6L5{display:flex;flex-direction:column;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);max-width:1040px;overflow:hidden;padding:0;position:relative;width:min(92vw,1040px)}.Chat-module_imageAttachmentModalHeader__onK3Z{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex:0 0 auto;padding:20px 68px 14px 24px}.Chat-module_imageAttachmentModalTitle__AhuMt{color:#0f172a!important;font-size:16px!important;font-weight:600!important;line-height:1.35;margin:0!important;overflow-wrap:anywhere;text-align:left!important}.Chat-module_imageAttachmentModalPreview__gXDer{align-items:center;background:#0f172a;box-sizing:border-box;display:flex;flex:1 1 auto;justify-content:center;max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px);min-height:0;overflow:hidden;padding:16px}.Chat-module_imageAttachmentModalImage__t61oG{display:block;max-height:calc(100vh - 162px);max-height:calc(100dvh - 162px);max-width:100%;object-fit:contain}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_toolCallClockPanel__h4xZd{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.Chat-module_toolCallClockLabels__KJGxe{text-align:center}.Chat-module_toolCallClockPrimary__StLQ8{color:#0f172a;font-size:2em;font-weight:700}.Chat-module_toolCallClockSecondary__O4WaT{color:#475467}.Chat-module_toolCallClockMeta__aObb7{color:#667085;font-size:.9em;margin-top:5px}.Chat-module_timeoutToolSummary__kPPvu{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.Chat-module_timeoutToolPrimarySentence__pQfLn{color:#0f172a;font-size:15px;font-weight:600;line-height:1.5;margin:0}.Chat-module_timeoutToolSecondarySentence__iH5Uc{color:#475467;font-size:13px;line-height:1.5;margin:6px 0 0}.Chat-module_timeoutToolActionRow__occir{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_timeoutToolActionButton__8yz0R{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:border-color .2s ease,background-color .2s ease}.Chat-module_timeoutToolActionButton__8yz0R:hover{background:#f1f5f9;border-color:#94a3b8}.Chat-module_timeoutToolActionButton__8yz0R:disabled{cursor:default;opacity:.45}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationIframeLoading__y5VW9{align-items:center;color:#888;display:flex;font-size:.9em;height:60vh;justify-content:center;min-height:400px;width:100%}.Chat-module_citationScreenshotFallback__jxfJX{display:flex;flex-direction:column;position:relative;width:100%}.Chat-module_citationScreenshotImage__hXjC7{display:block;max-height:60vh;min-height:400px;object-fit:cover;object-position:top;width:100%}.Chat-module_citationScreenshotLink__NHvbE{background:#f0f0f0;border-top:1px solid #ddd;color:#333;display:block;font-size:.9em;font-weight:500;padding:10px 16px;text-align:center;text-decoration:none;transition:background .15s}.Chat-module_citationScreenshotLink__NHvbE:hover{background:#e0e0e0;text-decoration:underline}.Chat-module_liveBrowserPreview__D94Kt{background:#f8fafc;display:flex;flex-direction:column;min-height:0;width:100%}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreview__D94Kt{flex:1 1 auto;min-height:0}.Chat-module_liveBrowserPreview__D94Kt:fullscreen{background:#0f172a}.Chat-module_liveBrowserPreviewToolbar__nFgSV{align-items:center;background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;gap:4px;padding:6px 8px}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl{align-items:center;background:transparent;border:none;border-radius:6px;color:#334155;cursor:pointer;display:flex;flex:none;font-size:14px;height:28px;justify-content:center;line-height:1;min-width:28px;padding:0 4px;text-decoration:none;transition:background .15s}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl:hover:not(:disabled){background:#e2e8f0}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl:disabled{cursor:default;opacity:.35}.Chat-module_liveBrowserPreviewZoomLabel__PbrV1{font-size:11px;font-variant-numeric:tabular-nums}.Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0{margin-left:2px}.Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0 svg{height:14px;width:14px}.Chat-module_liveBrowserPreviewUrlForm__4DSda{flex:1;margin:0 4px;min-width:0}.Chat-module_liveBrowserPreviewUrlInput__AugUm{background:#fff;border:1px solid #e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;outline:none;padding:5px 12px;width:100%}.Chat-module_liveBrowserPreviewUrlInput__AugUm:focus{border-color:#94a3b8}.Chat-module_liveBrowserPreviewStreamArea__aIhQx{background:#f8f8f8;height:60vh;min-height:400px;outline:none;overflow:auto;position:relative;touch-action:none}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreviewStreamArea__aIhQx{height:min(60vh,640px);min-height:min(400px,calc(100dvh - 140px))}.Chat-module_liveBrowserPreviewStreamArea__aIhQx:focus-visible{box-shadow:inset 0 0 0 2px #94a3b8}.Chat-module_liveBrowserPreview__D94Kt:fullscreen .Chat-module_liveBrowserPreviewStreamArea__aIhQx{flex:1;height:auto;min-height:0}.Chat-module_liveBrowserPreviewStreamImage__bpTj3{background:#fff;display:block;position:relative;touch-action:none;user-select:none;width:100%}.Chat-module_liveBrowserPreviewConnecting__8Gn40{align-items:center;color:#64748b;display:flex;font-size:.9em;inset:0;justify-content:center;position:absolute}.Chat-module_liveBrowserPreviewOverlay__eheiG{align-items:center;background:rgba(15,23,42,.55);color:#fff;display:flex;flex-direction:column;gap:12px;inset:0;justify-content:center;position:absolute;text-align:center}.Chat-module_liveBrowserPreviewOverlayButton__o9SNO{background:#fff;border:none;border-radius:999px;color:#0f172a;cursor:pointer;font-weight:600;padding:8px 20px}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA,.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(18px)!important;background:linear-gradient(140deg,#0f8ef5,#0b6fd0 56%,#0d5fbb)!important;border:1px solid hsla(0,0%,100%,.24)!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(14,116,219,.28),inset 0 1px 0 hsla(0,0%,100%,.2)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-family:inherit!important;font-size:12.5px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;letter-spacing:.02em!important;line-height:1.2!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:11px 16px!important;position:relative!important;text-decoration:none!important;touch-action:manipulation!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before,.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.26) 48%,transparent);content:\"\";height:100%;left:-110%;position:absolute;top:0;transition:left .45s ease;width:75%}.Chat-module_chatButton__d9VgA:hover:before,.Chat-module_useTemplateButton__xcJNR:hover:before{left:140%}.Chat-module_chatButton__d9VgA:hover:not(:disabled),.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(140deg,#1a9aff,#0d7de8 56%,#1168c9)!important;box-shadow:0 14px 30px rgba(14,116,219,.34),inset 0 1px 0 hsla(0,0%,100%,.2)!important;transform:translateY(-1.5px)}.Chat-module_chatButton__d9VgA:active,.Chat-module_useTemplateButton__xcJNR:active{transform:translateY(0) scale(.985);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus,.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 10px 24px rgba(14,116,219,.32),0 0 0 3px rgba(56,189,248,.28),inset 0 1px 0 hsla(0,0%,100%,.22)!important;outline:none}.Chat-module_chatButton__d9VgA svg,.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.24));flex-shrink:0;height:16px;opacity:1;transition:transform .2s ease,filter .2s ease;width:16px}.Chat-module_chatButton__d9VgA:hover svg,.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));transform:scale(1.08) translateX(1px)}.Chat-module_chatButtonText__RkGB-{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-,.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-padding-inline:clamp(24px,6vw,36px)}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{margin-bottom:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{border-radius:0;font-size:15px;line-height:1.68;padding:2px 0}.Chat-module_articleModeMessageActions__h2qaG{gap:8px;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 20px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_ratingModalContent__CCdq7.Chat-module_imageAttachmentModal__Ef6L5{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden;padding:0}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModal__XVKYm[data-chat-modal=image-attachment]{align-items:center;padding:12px}.Chat-module_ratingModal__XVKYm[data-chat-modal=citation-browser]{align-items:center;padding:8px}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}.Chat-module_ratingModalContent__CCdq7.Chat-module_imageAttachmentModal__Ef6L5{border-radius:16px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;width:100%}.Chat-module_ratingModalContent__CCdq7.Chat-module_citationBrowserModal__jYU4c{border-radius:14px;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:0;width:100%}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreviewStreamArea__aIhQx{height:58vh;min-height:min(320px,calc(100dvh - 112px))}.Chat-module_imageAttachmentModalHeader__onK3Z{padding:16px 56px 12px 16px}.Chat-module_imageAttachmentModalPreview__gXDer{max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);padding:12px}.Chat-module_imageAttachmentModalImage__t61oG{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px)}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}.Chat-module_progressPanel__9M8h9{background:linear-gradient(180deg,rgba(239,246,255,.94),rgba(219,234,254,.86));border:1px solid rgba(59,130,246,.24);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;margin-top:10px;padding:12px 13px}.Chat-module_progressPanelTitle__rBdoY{color:#0f172a;font-size:12px;font-weight:700;line-height:1.3}.Chat-module_progressPanelTitle__rBdoY p{margin:0}.Chat-module_progressPanelSection__F3xUF{display:flex;flex-direction:column;gap:4px}.Chat-module_progressPanelSectionLabel__aTPgr{color:#1d4ed8;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_progressPanelSectionBody__Z7zX0{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelSectionBody__Z7zX0 p{margin:0}.Chat-module_progressPanelList__PHFeP{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.Chat-module_progressPanelListItem__7v9jN{align-items:flex-start;display:grid;gap:8px;grid-template-columns:auto auto 1fr}.Chat-module_progressPanelListBullet__Tzvi7{color:#2563eb;font-size:14px;line-height:1.2;margin-top:2px}.Chat-module_progressPanelItemSpinner__oJ6Az{animation:Chat-module_progressPanelSpinner__pzxP2 .75s linear infinite;border:2px solid rgba(37,99,235,.26);border-radius:9999px;border-top-color:#2563eb;height:11px;margin-top:3px;width:11px}.Chat-module_progressPanelItemCompleted__7bJhG{align-items:center;background:rgba(34,197,94,.16);border-radius:9999px;color:#15803d;display:inline-flex;font-size:9px;font-weight:700;height:11px;justify-content:center;line-height:1;margin-top:2px;width:11px}.Chat-module_progressPanelItemText__tZPIs{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelItemText__tZPIs p{margin:0}@keyframes Chat-module_progressPanelSpinner__pzxP2{to{transform:rotate(1turn)}}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,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QUVmLGdCQUNKLENBRUEsNENBQ0ksUUFDSixDQUVBLG1EQUNJLEdBQ0ksdUJBQ0osQ0FDSixDQUVBLGlEQUNJLEdBQ0ksdUJBQ0osQ0FDSiIsImZpbGUiOiJDaGF0Lm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ09wZW5Nb2ppQmxhY2snO1xuICAgIHNyYzogdXJsKCcvZm9udHMvT3Blbk1vamktYmxhY2stZ2x5Zi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCdodHRwczovL3M2LnB0YmsuaW8vZm9udHMvT3Blbk1vamktYmxhY2stZ2x5Zi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgLyogPC0gVE9ETzogW/CfkLHigI3wn5qAXSBEeW5hbWljYWxseSBsb2FkIGZyb20gL3NlcnZlcnMudHMgKi9cbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgdW5pY29kZS1yYW5nZTogVSsyMywgVSsyQSwgVSsyRCwgVSszMC0zOSwgVStBOSwgVStBRSwgVSsyMDBELCBVKzIwM0MsIFUrMjA0OSwgVSsyMEUzLCBVKzIxMTcsIFUrMjEyMCwgVSsyMTIyLCBVKzIxMzksXG4gICAgICAgIFUrMjE5NC0yMTk5LCBVKzIxQTksIFUrMjFBQSwgVSsyMjlDLCBVKzIzMUEsIFUrMjMxQiwgVSsyMzI4LCBVKzIzQ0YsIFUrMjNFOS0yM0YzLCBVKzIzRjgtMjNGRSwgVSsyNEMyLCBVKzI1QTEsXG4gICAgICAgIFUrMjVBQS0yNUFFLCBVKzI1QjYsIFUrMjVDMCwgVSsyNUM5LCBVKzI1RDAsIFUrMjVEMSwgVSsyNUU3LTI1RUEsIFUrMjVFRCwgVSsyNUVFLCBVKzI1RkItMjVGRSwgVSsyNjAwLTI2MDUsXG4gICAgICAgIFUrMjYwRSwgVSsyNjExLCBVKzI2MTQsIFUrMjYxNSwgVSsyNjE4LCBVKzI2MUQsIFUrMjYyMCwgVSsyNjIyLCBVKzI2MjMsIFUrMjYyNiwgVSsyNjJBLCBVKzI2MkUsIFUrMjYyRixcbiAgICAgICAgVSsyNjM4LTI2M0EsIFUrMjY0MCwgVSsyNjQyLCBVKzI2NDgtMjY1MywgVSsyNjVGLCBVKzI2NjAsIFUrMjY2MywgVSsyNjY1LCBVKzI2NjYsIFUrMjY2OCwgVSsyNjdCLCBVKzI2N0UsIFUrMjY3RixcbiAgICAgICAgVSsyNjkxLTI2OTcsIFUrMjY5OSwgVSsyNjlCLCBVKzI2OUMsIFUrMjZBMCwgVSsyNkExLCBVKzI2QTcsIFUrMjZBQSwgVSsyNkFCLCBVKzI2QjAsIFUrMjZCMSwgVSsyNkJELCBVKzI2QkUsXG4gICAgICAgIFUrMjZDNCwgVSsyNkM1LCBVKzI2QzgsIFUrMjZDRSwgVSsyNkNGLCBVKzI2RDEsIFUrMjZEMywgVSsyNkQ0LCBVKzI2RTksIFUrMjZFQSwgVSsyNkYwLTI2RjUsIFUrMjZGNy0yNkZBLCBVKzI2RkQsXG4gICAgICAgIFUrMjcwMiwgVSsyNzA1LCBVKzI3MDgtMjcwRCwgVSsyNzBGLCBVKzI3MTIsIFUrMjcxNCwgVSsyNzE2LCBVKzI3MUQsIFUrMjcyMSwgVSsyNzI4LCBVKzI3MzMsIFUrMjczNCwgVSsyNzQ0LFxuICAgICAgICBVKzI3NDcsIFUrMjc0QywgVSsyNzRFLCBVKzI3NTMtMjc1NSwgVSsyNzU3LCBVKzI3NjMsIFUrMjc2NCwgVSsyNzk1LTI3OTcsIFUrMjdBMSwgVSsyN0IwLCBVKzI3QkYsIFUrMjkzNCwgVSsyOTM1LFxuICAgICAgICBVKzJCMDUtMkIwNywgVSsyQjBDLCBVKzJCMEQsIFUrMkIxQiwgVSsyQjFDLCBVKzJCMUYtMkIyNCwgVSsyQjJFLCBVKzJCMkYsIFUrMkI1MCwgVSsyQjU1LCBVKzJCNTgsIFUrMkI4RixcbiAgICAgICAgVSsyQkJBLTJCQkMsIFUrMkJDMywgVSsyQkM0LCBVKzJCRUEsIFUrMkJFQiwgVSszMDMwLCBVKzMwM0QsIFUrMzI5NywgVSszMjk5LCBVK0UwMDAtRTAwOSwgVStFMDEwLCBVK0UwMTEsXG4gICAgICAgIFUrRTA0MC1FMDZELCBVK0UwODAtRTBCNCwgVStFMEMwLUUwQ0MsIFUrRTBGRi1FMTBELCBVK0UxNDAtRTE0QSwgVStFMTUwLUUxNTcsIFUrRTE4MS1FMTg5LCBVK0UxQzAtRTFDNCxcbiAgICAgICAgVStFMUM2LUUxRDksIFUrRTIwMC1FMjE2LCBVK0UyNDAtRTI2OSwgVStFMjgwLUUyODMsIFUrRTJDMC1FMkM0LCBVK0UyQzYtRTJEQSwgVStFMzAwLUUzMDMsIFUrRTMwNS1FMzBGLFxuICAgICAgICBVK0UzMTItRTMxNiwgVStFMzE4LUUzMjIsIFUrRTMyNC1FMzI5LCBVK0UzMkIsIFUrRTM0MC1FMzQ4LCBVK0UzODAsIFUrRTM4MSwgVStGMDAwLCBVK0Y3N0EsIFUrRjhGRiwgVStGRTBGLFxuICAgICAgICBVKzFGMDA0LCBVKzFGMENGLCBVKzFGMTBELTFGMTBGLCBVKzFGMTJGLCBVKzFGMTZELTFGMTcxLCBVKzFGMTdFLCBVKzFGMTdGLCBVKzFGMThFLCBVKzFGMTkxLTFGMTlBLCBVKzFGMUU2LTFGMUZGLFxuICAgICAgICBVKzFGMjAxLCBVKzFGMjAyLCBVKzFGMjFBLCBVKzFGMjJGLCBVKzFGMjMyLTFGMjNBLCBVKzFGMjUwLCBVKzFGMjUxLCBVKzFGMjYwLTFGMjY1LCBVKzFGMzAwLTFGMzIxLCBVKzFGMzI0LTFGMzkzLFxuICAgICAgICBVKzFGMzk2LCBVKzFGMzk3LCBVKzFGMzk5LTFGMzlCLCBVKzFGMzlFLTFGM0YwLCBVKzFGM0YzLTFGM0Y1LCBVKzFGM0Y3LTFGNEZELCBVKzFGNEZGLTFGNTNELCBVKzFGNTQ5LTFGNTRFLFxuICAgICAgICBVKzFGNTUwLTFGNTY3LCBVKzFGNTZGLCBVKzFGNTcwLCBVKzFGNTczLTFGNTdBLCBVKzFGNTg3LCBVKzFGNThBLTFGNThELCBVKzFGNTkwLCBVKzFGNTk1LCBVKzFGNTk2LCBVKzFGNUE0LFxuICAgICAgICBVKzFGNUE1LCBVKzFGNUE4LCBVKzFGNUIxLCBVKzFGNUIyLCBVKzFGNUJDLCBVKzFGNUMyLTFGNUM0LCBVKzFGNUQxLTFGNUQzLCBVKzFGNURDLTFGNURFLCBVKzFGNUUxLCBVKzFGNUUzLFxuICAgICAgICBVKzFGNUU4LCBVKzFGNUVGLCBVKzFGNUYzLCBVKzFGNUZBLTFGNjRGLCBVKzFGNjgwLTFGNkM1LCBVKzFGNkNCLTFGNkQyLCBVKzFGNkQ1LTFGNkQ3LCBVKzFGNkRDLTFGNkU1LCBVKzFGNkU5LFxuICAgICAgICBVKzFGNkVCLCBVKzFGNkVDLCBVKzFGNkYwLCBVKzFGNkYzLTFGNkZDLCBVKzFGN0UwLTFGN0VCLCBVKzFGN0YwLCBVKzFGOTBDLTFGOTNBLCBVKzFGOTNDLTFGOTQ1LCBVKzFGOTQ3LTFGOUZGLFxuICAgICAgICBVKzFGQTcwLTFGQTdDLCBVKzFGQTgwLTFGQTg4LCBVKzFGQTkwLTFGQUJELCBVKzFGQUJGLTFGQUM1LCBVKzFGQUNFLTFGQURCLCBVKzFGQUUwLTFGQUU4LCBVKzFGQUYwLTFGQUY4LFxuICAgICAgICBVKzFGQkM1LTFGQkM5LCBVK0UwMDYxLUUwMDY3LCBVK0UwMDY5LCBVK0UwMDZDLUUwMDc5LCBVK0UwMDdGO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ09wZW5Nb2ppQ29sb3InO1xuICAgIHNyYzogdXJsKCcvZm9udHMvT3Blbk1vamktY29sb3ItY2JkdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgdXJsKCdodHRwczovL3M2LnB0YmsuaW8vZm9udHMvT3Blbk1vamktY29sb3ItY2JkdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgdW5pY29kZS1yYW5nZTogVSsyMywgVSsyQSwgVSsyRCwgVSszMC0zOSwgVStBOSwgVStBRSwgVSsyMDBELCBVKzIwM0MsIFUrMjA0OSwgVSsyMEUzLCBVKzIxMTcsIFUrMjEyMCwgVSsyMTIyLCBVKzIxMzksXG4gICAgICAgIFUrMjE5NC0yMTk5LCBVKzIxQTksIFUrMjFBQSwgVSsyMjlDLCBVKzIzMUEsIFUrMjMxQiwgVSsyMzI4LCBVKzIzQ0YsIFUrMjNFOS0yM0YzLCBVKzIzRjgtMjNGRSwgVSsyNEMyLCBVKzI1QTEsXG4gICAgICAgIFUrMjVBQS0yNUFFLCBVKzI1QjYsIFUrMjVDMCwgVSsyNUM5LCBVKzI1RDAsIFUrMjVEMSwgVSsyNUU3LTI1RUEsIFUrMjVFRCwgVSsyNUVFLCBVKzI1RkItMjVGRSwgVSsyNjAwLTI2MDUsXG4gICAgICAgIFUrMjYwRSwgVSsyNjExLCBVKzI2MTQsIFUrMjYxNSwgVSsyNjE4LCBVKzI2MUQsIFUrMjYyMCwgVSsyNjIyLCBVKzI2MjMsIFUrMjYyNiwgVSsyNjJBLCBVKzI2MkUsIFUrMjYyRixcbiAgICAgICAgVSsyNjM4LTI2M0EsIFUrMjY0MCwgVSsyNjQyLCBVKzI2NDgtMjY1MywgVSsyNjVGLCBVKzI2NjAsIFUrMjY2MywgVSsyNjY1LCBVKzI2NjYsIFUrMjY2OCwgVSsyNjdCLCBVKzI2N0UsIFUrMjY3RixcbiAgICAgICAgVSsyNjkxLTI2OTcsIFUrMjY5OSwgVSsyNjlCLCBVKzI2OUMsIFUrMjZBMCwgVSsyNkExLCBVKzI2QTcsIFUrMjZBQSwgVSsyNkFCLCBVKzI2QjAsIFUrMjZCMSwgVSsyNkJELCBVKzI2QkUsXG4gICAgICAgIFUrMjZDNCwgVSsyNkM1LCBVKzI2QzgsIFUrMjZDRSwgVSsyNkNGLCBVKzI2RDEsIFUrMjZEMywgVSsyNkQ0LCBVKzI2RTksIFUrMjZFQSwgVSsyNkYwLTI2RjUsIFUrMjZGNy0yNkZBLCBVKzI2RkQsXG4gICAgICAgIFUrMjcwMiwgVSsyNzA1LCBVKzI3MDgtMjcwRCwgVSsyNzBGLCBVKzI3MTIsIFUrMjcxNCwgVSsyNzE2LCBVKzI3MUQsIFUrMjcyMSwgVSsyNzI4LCBVKzI3MzMsIFUrMjczNCwgVSsyNzQ0LFxuICAgICAgICBVKzI3NDcsIFUrMjc0QywgVSsyNzRFLCBVKzI3NTMtMjc1NSwgVSsyNzU3LCBVKzI3NjMsIFUrMjc2NCwgVSsyNzk1LTI3OTcsIFUrMjdBMSwgVSsyN0IwLCBVKzI3QkYsIFUrMjkzNCwgVSsyOTM1LFxuICAgICAgICBVKzJCMDUtMkIwNywgVSsyQjBDLCBVKzJCMEQsIFUrMkIxQiwgVSsyQjFDLCBVKzJCMUYtMkIyNCwgVSsyQjJFLCBVKzJCMkYsIFUrMkI1MCwgVSsyQjU1LCBVKzJCNTgsIFUrMkI4RixcbiAgICAgICAgVSsyQkJBLTJCQkMsIFUrMkJDMywgVSsyQkM0LCBVKzJCRUEsIFUrMkJFQiwgVSszMDMwLCBVKzMwM0QsIFUrMzI5NywgVSszMjk5LCBVK0UwMDAtRTAwOSwgVStFMDEwLCBVK0UwMTEsXG4gICAgICAgIFUrRTA0MC1FMDZELCBVK0UwODAtRTBCNCwgVStFMEMwLUUwQ0MsIFUrRTBGRi1FMTBELCBVK0UxNDAtRTE0QSwgVStFMTUwLUUxNTcsIFUrRTE4MS1FMTg5LCBVK0UxQzAtRTFDNCxcbiAgICAgICAgVStFMUM2LUUxRDksIFUrRTIwMC1FMjE2LCBVK0UyNDAtRTI2OSwgVStFMjgwLUUyODMsIFUrRTJDMC1FMkM0LCBVK0UyQzYtRTJEQSwgVStFMzAwLUUzMDMsIFUrRTMwNS1FMzBGLFxuICAgICAgICBVK0UzMTItRTMxNiwgVStFMzE4LUUzMjIsIFUrRTMyNC1FMzI5LCBVK0UzMkIsIFUrRTM0MC1FMzQ4LCBVK0UzODAsIFUrRTM4MSwgVStGMDAwLCBVK0Y3N0EsIFUrRjhGRiwgVStGRTBGLFxuICAgICAgICBVKzFGMDA0LCBVKzFGMENGLCBVKzFGMTBELTFGMTBGLCBVKzFGMTJGLCBVKzFGMTZELTFGMTcxLCBVKzFGMTdFLCBVKzFGMTdGLCBVKzFGMThFLCBVKzFGMTkxLTFGMTlBLCBVKzFGMUU2LTFGMUZGLFxuICAgICAgICBVKzFGMjAxLCBVKzFGMjAyLCBVKzFGMjFBLCBVKzFGMjJGLCBVKzFGMjMyLTFGMjNBLCBVKzFGMjUwLCBVKzFGMjUxLCBVKzFGMjYwLTFGMjY1LCBVKzFGMzAwLTFGMzIxLCBVKzFGMzI0LTFGMzkzLFxuICAgICAgICBVKzFGMzk2LCBVKzFGMzk3LCBVKzFGMzk5LTFGMzlCLCBVKzFGMzlFLTFGM0YwLCBVKzFGM0YzLTFGM0Y1LCBVKzFGM0Y3LTFGNEZELCBVKzFGNEZGLTFGNTNELCBVKzFGNTQ5LTFGNTRFLFxuICAgICAgICBVKzFGNTUwLTFGNTY3LCBVKzFGNTZGLCBVKzFGNTcwLCBVKzFGNTczLTFGNTdBLCBVKzFGNTg3LCBVKzFGNThBLTFGNThELCBVKzFGNTkwLCBVKzFGNTk1LCBVKzFGNTk2LCBVKzFGNUE0LFxuICAgICAgICBVKzFGNUE1LCBVKzFGNUE4LCBVKzFGNUIxLCBVKzFGNUIyLCBVKzFGNUJDLCBVKzFGNUMyLTFGNUM0LCBVKzFGNUQxLTFGNUQzLCBVKzFGNURDLTFGNURFLCBVKzFGNUUxLCBVKzFGNUUzLFxuICAgICAgICBVKzFGNUU4LCBVKzFGNUVGLCBVKzFGNUYzLCBVKzFGNUZBLTFGNjRGLCBVKzFGNjgwLTFGNkM1LCBVKzFGNkNCLTFGNkQyLCBVKzFGNkQ1LTFGNkQ3LCBVKzFGNkRDLTFGNkU1LCBVKzFGNkU5LFxuICAgICAgICBVKzFGNkVCLCBVKzFGNkVDLCBVKzFGNkYwLCBVKzFGNkYzLTFGNkZDLCBVKzFGN0UwLTFGN0VCLCBVKzFGN0YwLCBVKzFGOTBDLTFGOTNBLCBVKzFGOTNDLTFGOTQ1LCBVKzFGOTQ3LTFGOUZGLFxuICAgICAgICBVKzFGQTcwLTFGQTdDLCBVKzFGQTgwLTFGQTg4LCBVKzFGQTkwLTFGQUJELCBVKzFGQUJGLTFGQUM1LCBVKzFGQUNFLTFGQURCLCBVKzFGQUUwLTFGQUU4LCBVKzFGQUYwLTFGQUY4LFxuICAgICAgICBVKzFGQkM1LTFGQkM5LCBVK0UwMDYxLUUwMDY3LCBVK0UwMDY5LCBVK0UwMDZDLUUwMDc5LCBVK0UwMDdGO1xufVxuXG4uY29waWVkVG9DbGlwYm9hcmRNZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAzMnB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogIzIyMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICAgIG9wYWNpdHk6IDAuOTc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTtcbn1cblxuLkNoYXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgZm9udC1mYW1pbHk6IHZhcihcbiAgICAgICAgICAgIC0tY2hhdC1mb250LWZhbWlseSxcbiAgICAgICAgICAgIHZhcigtLWZvbnQtcG9wcGlucywgJ1BvcHBpbnMnLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICdTZWdvZSBVSScsIHNhbnMtc2VyaWYpXG4gICAgICAgICksXG4gICAgICAgICdPcGVuTW9qaUNvbG9yJywgJ09wZW5Nb2ppQmxhY2snO1xuXG4gICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiAxNzBweDtcbiAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiAxNHB4O1xuICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplOiA0MnB4O1xuICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICA3MiUsXG4gICAgICAgIDY4MHB4LFxuICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICk7XG4gICAgLS1jaGF0LWJ1YmJsZS1yYWRpdXM6IDI0cHg7XG4gICAgLS1jaGF0LWJ1YmJsZS1zaGFkb3c6IDAgMTJweCAzNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG4gICAgLS1jaGF0LWJ1YmJsZS1zaGFkb3ctaG92ZXI6IDAgMThweCA0MnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yKTtcbiAgICAtLWNoYXQtYnViYmxlLWJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICAtLWNoYXQtYnViYmxlLWZvbnQtc2l6ZTogMTVweDtcbiAgICAtLWNoYXQtYnViYmxlLWxpbmUtaGVpZ2h0OiAxLjYyO1xuICAgIC0tY2hhdC1pbnB1dC12aXNpYmxlLWxpbmVzOiAzO1xuICAgIC0tY2hhdC1pbnB1dC1mb250LXNpemU6IDE1cHg7XG4gICAgLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteTogMTBweDtcbiAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy14OiAxMnB4O1xuICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICAtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0OiBjYWxjKFxuICAgICAgICB2YXIoLS1jaGF0LWlucHV0LXZpc2libGUtbGluZXMpICogdmFyKC0tY2hhdC1pbnB1dC1mb250LXNpemUpICogdmFyKC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodCkgK1xuICAgICAgICAgICAgKDIgKiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkpXG4gICAgKTtcbiAgICAtLWNoYXQtbWVzc2FnZS1tZXRhLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjg1KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1saWZlY3ljbGUtYmFkZ2UtYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE2KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1saWZlY3ljbGUtYmFkZ2UtY29sb3I6ICM0NzU1Njk7XG4gICAgLS1jaGF0LXBhcnRpY2lwYW50LWxhYmVsLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjgyKTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40Nik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzYpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzYpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtY29sb3I6ICMxMTExMTE7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItc2hhZG93OiAwIDVweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4yMik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1zcGlubmVyLWJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc3Bpbm5lci1hY2NlbnQtY29sb3I6ICMxMTExMTE7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1iYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNjUpO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjgyKTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWhvdmVyLXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG4gICAgLS1jaGF0LWFydGljbGUtcmF0aW5nLWJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNSk7XG4gICAgLS1jaGF0LWFydGljbGUtcmF0aW5nLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoMjQxLCAyNDUsIDI0OSwgMC45NCk7XG4gICAgLS1jaGF0LWFydGljbGUtcmF0aW5nLWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjYyKTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctc2hhZG93OiBub25lO1xuICAgIC0tY2hhdC1pbnB1dC1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNCk7XG4gICAgLS1jaGF0LWlucHV0LWJhY2tkcm9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiYSgyNDgsIDI1MCwgMjUyLCAwKSAwJSxcbiAgICAgICAgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpIDQ0JSxcbiAgICAgICAgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSAxMDAlXG4gICAgKTtcbiAgICAtLWNoYXQtZnVsbC1wYWdlLWlucHV0LWJhY2tkcm9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSAwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KSA2MCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkgMTAwJVxuICAgICk7XG4gICAgLS1jaGF0LWlucHV0LWRyYWctb3Zlci1iYWNrZHJvcDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjA0KSAwJSxcbiAgICAgICAgcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTMpIDEwMCVcbiAgICApO1xuICAgIC0tY2hhdC1pbnB1dC1jb250YWluZXItYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxNTBkZWcsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCkgMCUsXG4gICAgICAgIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NCkgMTAwJVxuICAgICk7XG4gICAgLS1jaGF0LWlucHV0LWNvbnRhaW5lci1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zKTtcbiAgICAtLWNoYXQtaW5wdXQtY29udGFpbmVyLXNoYWRvdzogMCAxNHB4IDM0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKSxcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgLS1jaGF0LWlucHV0LXRleHQtY29sb3I6ICMwZjE3MmE7XG4gICAgLS1jaGF0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAjOGI5YmIxO1xuICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tY29sb3I6ICM2NDc0OGI7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24taG92ZXItY29sb3I6ICMwZjE3MmE7XG4gICAgLS1jaGF0LWZpbGUtcHJldmlldy1iYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgLS1jaGF0LWZpbGUtcHJldmlldy1ib3JkZXItY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xNSk7XG4gICAgLS1jaGF0LWZpbGUtcHJldmlldy1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICAtLWNoYXQtZmlsZS1uYW1lLWNvbG9yOiAjMDAwMDAwO1xuICAgIC0tY2hhdC1maWxlLXNpemUtY29sb3I6ICM2YjcyODA7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRpdGxlLWNvbG9yOiAjNDc1NTY5O1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdG9nZ2xlLWJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10b2dnbGUtY29sb3I6ICMzMzQxNTU7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10cmFuc2NyaXB0LWJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRyYW5zY3JpcHQtY29sb3I6ICMwYzRhNmU7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1zZXR0aW5ncy1jb2xvcjogIzMzNDE1NTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWZhbGxiYWNrLWNvbG9yOiAjNDc1NTY5O1xuICAgIC0tY2hhdC1yZXBseS1jb21wb3Nlci1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgIC0tY2hhdC1yZXBseS1jb21wb3Nlci1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zKTtcbiAgICAtLWNoYXQtcmVwbHktY29tcG9zZXItc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIC0tY2hhdC1yZXBseS1kaXNtaXNzLWJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNCk7XG4gICAgLS1jaGF0LXJlcGx5LWRpc21pc3MtaG92ZXItYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI0KTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1jb2xvcjogIzQ3NTU2OTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1ob3Zlci1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJvcmRlci1jb2xvcjogcmdiYSgxNSwgMjMsIDQyLCAwLjE1KTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG4gICAgLS1jaGF0LXNwZWVjaC1zdGF0dXMtZG90LWJhY2tncm91bmQ6ICM2NDc0OGI7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICAtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tY29sb3I6ICMwZjE3MmE7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLWxhYmVsLWNvbG9yOiAjMzM0MTU1O1xuICAgIC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tdGV4dGFyZWEtYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xufVxuXG4uQ2hhdFtkYXRhLWNoYXQtdGhlbWU9J2RhcmsnXSB7XG4gICAgY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWJ1YmJsZS1zaGFkb3c6IDAgMTRweCAzNHB4IHJnYmEoMiwgNiwgMjMsIDAuMzgpO1xuICAgIC0tY2hhdC1idWJibGUtc2hhZG93LWhvdmVyOiAwIDE4cHggNDJweCByZ2JhKDIsIDYsIDIzLCAwLjQ4KTtcbiAgICAtLWNoYXQtYnViYmxlLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgIC0tY2hhdC1tZXNzYWdlLW1ldGEtY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC44NCk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbGlmZWN5Y2xlLWJhZGdlLWJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNCk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbGlmZWN5Y2xlLWJhZGdlLWNvbG9yOiAjY2JkNWUxO1xuICAgIC0tY2hhdC1wYXJ0aWNpcGFudC1sYWJlbC1jb2xvcjogcmdiYSgyMDMsIDIxMywgMjI1LCAwLjc2KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC45Nik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC43Mik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgyLCA2LCAyMywgMC4zNCk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMiwgNiwgMjMsIDAuNDIpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc3Bpbm5lci1ib3JkZXItY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC4zKTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNwaW5uZXItYWNjZW50LWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC45NSk7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTgpO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNzIpO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItc2hhZG93OiAwIDEycHggMjZweCByZ2JhKDIsIDYsIDIzLCAwLjMyKTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjk1KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjk4KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNzIpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1zaGFkb3c6IDAgMTJweCAyNnB4IHJnYmEoMiwgNiwgMjMsIDAuMzIpO1xuICAgIC0tY2hhdC1pbnB1dC1ib3JkZXItY29sb3I6IHJnYmEoNTEsIDY1LCA4NSwgMC43OCk7XG4gICAgLS1jaGF0LWlucHV0LWJhY2tkcm9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiYSgyLCA2LCAyMywgMCkgMCUsXG4gICAgICAgIHJnYmEoMiwgNiwgMjMsIDAuODIpIDQ4JSxcbiAgICAgICAgcmdiYSgyLCA2LCAyMywgMC45NikgMTAwJVxuICAgICk7XG4gICAgLS1jaGF0LWZ1bGwtcGFnZS1pbnB1dC1iYWNrZHJvcDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIHJnYmEoMiwgNiwgMjMsIDApIDAlLFxuICAgICAgICByZ2JhKDIsIDYsIDIzLCAwLjg4KSA1OCUsXG4gICAgICAgIHJnYmEoMiwgNiwgMjMsIDAuOTgpIDEwMCVcbiAgICApO1xuICAgIC0tY2hhdC1pbnB1dC1kcmFnLW92ZXItYmFja2Ryb3A6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICByZ2JhKDE0LCAxNjUsIDIzMywgMC4wOCkgMCUsXG4gICAgICAgIHJnYmEoOCwgNDcsIDczLCAwLjUpIDEwMCVcbiAgICApO1xuICAgIC0tY2hhdC1pbnB1dC1jb250YWluZXItYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxNTBkZWcsXG4gICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC45NikgMCUsXG4gICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC45KSAxMDAlXG4gICAgKTtcbiAgICAtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC44OCk7XG4gICAgLS1jaGF0LWlucHV0LWNvbnRhaW5lci1zaGFkb3c6IDAgMjBweCA0NHB4IHJnYmEoMiwgNiwgMjMsIDAuNDIpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xKTtcbiAgICAtLWNoYXQtaW5wdXQtdGV4dC1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICM5NGEzYjg7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoNTEsIDY1LCA4NSwgMC43OCk7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1jb2xvcjogI2Y4ZmFmYztcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgLS1jaGF0LWZpbGUtcHJldmlldy1ib3JkZXItY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuNzIpO1xuICAgIC0tY2hhdC1maWxlLXByZXZpZXctaG92ZXItYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjg2KTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQyKTtcbiAgICAtLWNoYXQtZmlsZS1uYW1lLWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1maWxlLXNpemUtY29sb3I6ICM5NGEzYjg7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTQpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjgpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10aXRsZS1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRvZ2dsZS1iYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTIpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdG9nZ2xlLWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdHJhbnNjcmlwdC1iYWNrZ3JvdW5kOiByZ2JhKDgsIDQ3LCA3MywgMC42NCk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10cmFuc2NyaXB0LWNvbG9yOiAjYmFlNmZkO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tc2V0dGluZ3MtY29sb3I6ICNjYmQ1ZTE7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1mYWxsYmFjay1jb2xvcjogIzk0YTNiODtcbiAgICAtLWNoYXQtcmVwbHktY29tcG9zZXItYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjk0KTtcbiAgICAtLWNoYXQtcmVwbHktY29tcG9zZXItYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjgpO1xuICAgIC0tY2hhdC1yZXBseS1jb21wb3Nlci1zaGFkb3c6IDAgMTRweCAyOHB4IHJnYmEoMiwgNiwgMjMsIDAuMzIpO1xuICAgIC0tY2hhdC1yZXBseS1kaXNtaXNzLWJhY2tncm91bmQ6IHJnYmEoNTEsIDY1LCA4NSwgMC43Nik7XG4gICAgLS1jaGF0LXJlcGx5LWRpc21pc3MtaG92ZXItYmFja2dyb3VuZDogcmdiYSg3MSwgODUsIDEwNSwgMC45KTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1ob3Zlci1jb2xvcjogI2Y4ZmFmYztcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTYpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC44KTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMiwgNiwgMjMsIDAuNDIpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWRvdC1iYWNrZ3JvdW5kOiAjOTRhM2I4O1xuICAgIC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC45Mik7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjc4KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tbGFiZWwtY29sb3I6ICNjYmQ1ZTE7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJhY2tncm91bmQ6IHJnYmEoOCwgMTUsIDI4LCAwLjk4KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tdGV4dGFyZWEtY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC43OCk7XG59XG5cbi5jb25zdHJhaW5lZEFydGljbGVWaXN1YWwge1xuICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1tYXgtd2lkdGg6IDU0cmVtO1xuICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZTogY2xhbXAoMTZweCwgNHZ3LCA0MHB4KTtcbn1cblxuLmNoYXRNYWluRmxvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICfwn5+mJyBtaW4tY29udGVudFxuICAgICAgICAn8J+SrCcgMWZyXG4gICAgICAgICfwn5OdJyBtaW4tY29udGVudFxuICAgICAgICAvIDFmcjtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdEJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBjb2xvcjogIzBmMTcyNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgMzYsIDAuMDYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uVGFza3NJblByb2dyZXNzIHtcbiAgICBncmlkLWFyZWE6IPCfn6Y7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBtaW4tY29udGVudDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDhweCAxNnB4O1xufVxuXG4uYWN0aW9ucyB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgei1pbmRleDogNDA7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbiAgICBqdXN0aWZ5LXNlbGY6IHNlbGYtZW5kO1xuICAgIG1hcmdpbjogMTZweCAyMHB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4uYWN0aW9ucy5wb3J0YWwge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmFjdGlvbnMubGVmdCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLXN0YXJ0O1xufVxuXG4uYWN0aW9ucy5yaWdodCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbn1cblxuLmFjdGlvbnNGYWRlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4uYWN0aW9uc1Njcm9sbGluZyB7XG4gICAgb3BhY2l0eTogMC4xNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogTGFyZ2UgdGFibGV0IGFuZCBzbWFsbCBkZXNrdG9wIHNjcmVlbnMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTRweCAxOHB4IDA7XG4gICAgICAgIGdhcDogN3B4O1xuICAgIH1cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdENoaWxkcmVuIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdENoaWxkcmVuID4gKiB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qIENoYXQgbWVzc2FnZXMgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDI4cHggMjRweCAxOHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0TWVzc2FnZXMge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyAuY2hhdE1lc3NhZ2Uge1xuICAgIHdpZHRoOiBtaW4odmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1tYXgtd2lkdGgpLCAxMDAlKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0TWVzc2FnZXMgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UgLm1lc3NhZ2VTdGFjayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmhhc0FjdGlvbnNBbmRGaXJzdE1lc3NhZ2VJc0xvbmcge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xufVxuXG4vKiBDdXN0b20gc2Nyb2xsYmFyIHN0eWxpbmcgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA3cHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAwLCAxMTYsIDEzOSwgMC41NSk7XG59XG5cbi8qIEluZGl2aWR1YWwgY2hhdCBtZXNzYWdlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlU2xpZGVJbiAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VTdGFjayB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrID4gKiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSB7XG4gICAgY29sdW1uLWdhcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICB3aWR0aDogbWluKDEwMCUsIDg2MHB4KTtcbiAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCA4NjBweCk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIuYXJ0aWNsZU1vZGVBZ2VudEF2YXRhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lc3NhZ2VXaXRoTWFwIHtcbiAgICAvKiBtYXJrZXIgY2xhc3MgYXBwbGllZCB0byBtYXAgbWVzc2FnZXMgc28gdGhleSBjYW4gc3RyZXRjaCB3aWRlci4gKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCAubWVzc2FnZVN0YWNrIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogbWluKDkwdncsIDkyMHB4LCBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKSk7XG4gICAgbWF4LXdpZHRoOiBtaW4oOTB2dywgOTIwcHgsIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAgLm1lc3NhZ2VTdGFjayB7XG4gICAgICAgIHdpZHRoOiBtaW4oOTJ2dywgNjQwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbig5MnZ3LCA2NDBweCk7XG4gICAgfVxufVxuXG4ubWVzc2FnZU1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiA2cHggOHB4IDA7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtbWVzc2FnZS1tZXRhLWNvbG9yKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlTWV0YSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIC5tZXNzYWdlTWV0YSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubWVzc2FnZUxpZmVjeWNsZUJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1tZXNzYWdlLWxpZmVjeWNsZS1iYWRnZS1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLWxpZmVjeWNsZS1iYWRnZS1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5tZXNzYWdlVGltZXN0YW1wIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG4ubWVzc2FnZUR1cmF0aW9uIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubWVzc2FnZVJlcGx5QnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDAuODg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE4cyBlYXNlLCBjb2xvciAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLm1lc3NhZ2VSZXBseUJ1dHRvbjpob3Zlcixcbi5tZXNzYWdlUmVwbHlCdXR0b246Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVweCk7XG59XG5cbi5tZXNzYWdlUmVwbHlCdXR0b25JY29uIHtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG59XG5cbi5tZXNzYWdlTGlmZWN5Y2xlRXJyb3Ige1xuICAgIG1hcmdpbjogNHB4IDZweCAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI2I5MWMxYztcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLnBhcnRpY2lwYW50TGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDdlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LXBhcnRpY2lwYW50LWxhYmVsLWNvbG9yKTtcbiAgICBtYXJnaW46IDAgMCA3cHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLnBhcnRpY2lwYW50TGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIG1lc3NhZ2VTbGlkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpIHNjYWxlKDAuOTUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5pc05vdENvbXBsZXRlTWVzc2FnZSB7XG4gICAgLyovXG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCAjZmYwMDAwICFpbXBvcnRhbnQ7XG4gICAgLyoqL1xuXG4gICAgb3BhY2l0eTogMC43O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLk5vbkNvbXBsZXRlTWVzc2FnZUZpbGxlciB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKiBFbmhhbmNlZCBsb2FkaW5nIHN0YXRlcyBmb3IgbWVzc2FnZXMgKi9cbi5pc05vdENvbXBsZXRlTWVzc2FnZSAubWVzc2FnZVRleHQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA4cHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGFuaW1hdGlvbjogbG9hZGluZ1B1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlLmlzTm90Q29tcGxldGVNZXNzYWdlIC5tZXNzYWdlVGV4dDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50b29sQ2FsbENoaXBzLFxuLnNvdXJjZUNpdGF0aW9ucyxcbi5jaXRhdGlvbkZvb3Rub3RlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMjgpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmNpdGF0aW9uRm9vdG5vdGVzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uY2l0YXRpb25Gb290bm90ZUl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbn1cblxuLmNpdGF0aW9uRm9vdG5vdGVOdW1iZXIge1xuICAgIG1pbi13aWR0aDogMS4yNXJlbTtcbiAgICBmb250LXNpemU6IDAuODRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgNzglLCB0cmFuc3BhcmVudCk7XG59XG5cbi50b29sQ2FsbENoaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDVweCAxMXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNik7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KSAyNiUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjaycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG59XG5cbi50b29sQ2FsbENoaXA6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDY0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KSAzNiUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNCk7XG59XG5cbi50b29sQ2FsbENoaXBPbmdvaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjEpO1xufVxuXG4udG9vbENhbGxDaGlwU3RhdHVzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udGVhbVRvb2xDYWxsLFxuLnRyYW5zaXRpdmVUb29sQ2FsbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbUFnZW50Q2hpcCxcbi50cmFuc2l0aXZlQWdlbnRDaGlwIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnRvb2xDYWxsTGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi50b29sQ2FsbFdpdGhFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC44KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xMik7XG59XG5cbi50b29sQ2FsbE9yaWdpbiB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi50b29sQ2FsbERldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRvb2xDYWxsRGV0YWlscyBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi50b29sQ2FsbERhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4udG9vbENhbGxDaGlwU3Bpbm5lciB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IHRvb2xDYWxsU3Bpbm5lciAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyB0b29sQ2FsbFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbG9hZGluZ1B1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjgpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjIpO1xuICAgIH1cbn1cblxuLyogVHlwaW5nIGluZGljYXRvciBmb3IgQUkgbWVzc2FnZXMgKi9cbi50eXBpbmdJbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlU2xpZGVJbiAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLnR5cGluZ0luZGljYXRvciAuYXZhdGFyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luOiAwIDEycHggNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBb44qX77iPXVxuLnR5cGluZ0luZGljYXRvciAuYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjZmYjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG59XG4qL1xuXG4udHlwaW5nQnViYmxlIHtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBtaW4taGVpZ2h0OiAyNHB4O1xufVxuXG4udHlwaW5nRG90cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDRweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udHlwaW5nRG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNmI3MjgwIDAlLCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNikgMTAwJSk7XG4gICAgYW5pbWF0aW9uOiB0eXBpbmdCb3VuY2UgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgxKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zMnM7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDIpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjE2cztcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMykge1xuICAgIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbkBrZXlmcmFtZXMgdHlwaW5nQm91bmNlIHtcbiAgICAwJSxcbiAgICA4MCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICAgIDQwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVZKC04cHgpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VUZXh0IHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2U6bm90KC5pc01lKSAubWVzc2FnZVRleHQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG59XG5cbi5yYXRpbmdTdGFyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZmVlZGJhY2stc3Rhci1jb2xvciwgdmFyKC0tc3Rhci1pbmFjdGl2ZS1jb2xvciwgI2NjYykpO1xufVxuXG4uZmVlZGJhY2tTdGFyIHtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWNvbG9yLCAjY2NjKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmVlZGJhY2tTdGFySWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZmVlZGJhY2stc3Rhci1jb2xvciwgY3VycmVudENvbG9yKSAhaW1wb3J0YW50O1xuICAgIGZpbGw6IHZhcigtLWNoYXQtZmVlZGJhY2stc3Rhci1maWxsLCBub25lKSAhaW1wb3J0YW50O1xuICAgIHN0cm9rZTogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWNvbG9yLCBjdXJyZW50Q29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbi5mZWVkYmFja1N0YXJJY29uICoge1xuICAgIGZpbGw6IHZhcigtLWNoYXQtZmVlZGJhY2stc3Rhci1maWxsLCBub25lKSAhaW1wb3J0YW50O1xuICAgIHN0cm9rZTogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWNvbG9yLCBjdXJyZW50Q29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlbmRlciBBdmF0YXIgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKTtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIFvjipfvuI9dXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYXZhdGFyLWJnLWNvbG9yLCAjZWVmNmZiKTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWc6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuKi9cblxuLyogTWVzc2FnZSB0ZXh0IGJ1YmJsZSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYXQtYnViYmxlLXJhZGl1cyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogbWluKHZhcigtLWNoYXQtbWVzc2FnZS1taW4td2lkdGgpLCAxMDAlKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWJ1YmJsZS1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtYnViYmxlLXNoYWRvdyksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tY2hhdC1idWJibGUtbGluZS1oZWlnaHQpO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIGh5cGhlbnM6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGF0LWJ1YmJsZS1mb250LXNpemUpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMjVlbTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLWNoYXQtbWVzc2FnZS1zd2lwZS1vZmZzZXQsIDBweCkpO1xuICAgIC0tY2hhdC1tZC1oZWFkaW5nLWZvbnQtZmFtaWx5OiB2YXIoXG4gICAgICAgIC0tZm9udC1iYXJsb3ctY29uZGVuc2VkLFxuICAgICAgICAnQmFybG93IENvbmRlbnNlZCcsXG4gICAgICAgIHZhcigtLWZvbnQtcG9wcGlucywgJ1BvcHBpbnMnLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sICdTZWdvZSBVSScsIHNhbnMtc2VyaWYpXG4gICAgKTtcbiAgICAtLWNoYXQtbWQtYm9keS1mb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAtLWNoYXQtbWQtdGV4dC1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtbWQtbGluay1jb2xvcjogIzI1NjNlYjtcbiAgICAtLWNoYXQtbWQtbXV0ZWQtY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgLS1jaGF0LW1kLWlubGluZS1jb2RlLWJnOiByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1ib3JkZXI6IHJnYmEoMTUsIDIzLCA0MiwgMC4yKTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgLS1jaGF0LW1kLWJsb2NrcXVvdGUtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1ib3JkZXI6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjUyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgLS1jaGF0LW1kLXRhYmxlLXJvdy1hbHQtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgLS1jaGF0LW1kLXRhYmxlLWhlYWQtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzYpO1xuICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICAtLWNoYXQtbWQtY2l0YXRpb24tY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dC5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZVRleHQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nOiAycHggMDtcbiAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgICBmb250LXNpemU6IDE1LjVweDtcbiAgICAtLWNoYXQtbWQtbGluay1jb2xvcjogIzFkNGVkODtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgLS1jaGF0LW1kLWlubGluZS1jb2RlLWJvcmRlcjogcmdiYSgxNSwgMjMsIDQyLCAwLjE2KTtcbiAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1iZzogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjEyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtYmc6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45KTtcbiAgICAtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZzogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjQ1KTtcbiAgICAtLWNoYXQtbWQtdGFibGUtaGVhZC1iZzogcmdiYSgyNDEsIDI0NSwgMjQ5LCAwLjkyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtYm9yZGVyOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNDUpO1xuICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1iZzogcmdiYSgxOTEsIDIxOSwgMjU0LCAwLjI0KTtcbn1cblxuLnJlcGx5RW5hYmxlZE1lc3NhZ2VUZXh0IHtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4ucmVwbHlTd2lwZUFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1idWJibGUtc2hhZG93LWhvdmVyKSwgMCAwIDAgMXB4IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjIyKSxcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuXG4ucmVwbHlTd2lwZUluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IC0yNHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBvcGFjaXR5OiAwLjIyO1xuICAgIGNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuNDUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG5cbi5yZXBseVN3aXBlSW5kaWNhdG9yUmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IC0yNHB4O1xufVxuXG4ucmVwbHlTd2lwZUluZGljYXRvckFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA1KTtcbn1cblxuLnJlcGx5U3dpcGVJbmRpY2F0b3JJY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5yZXBseVByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLnJlcGx5QnViYmxlUHJldmlldyB7XG4gICAgb3BhY2l0eTogMC45O1xufVxuXG4ucmVwbHlDb21wb3NlclByZXZpZXcge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LXJlcGx5LWNvbXBvc2VyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhdC1yZXBseS1jb21wb3Nlci1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtcmVwbHktY29tcG9zZXItc2hhZG93KTtcbn1cblxuLnJlcGx5UHJldmlld0FjY2VudCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICB3aWR0aDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICMwZWE1ZTk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KSA4NCUsIHdoaXRlIDE2JSk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yZXBseVByZXZpZXdCb2R5IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5yZXBseVByZXZpZXdIZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBvcGFjaXR5OiAwLjgyO1xufVxuXG4ucmVwbHlQcmV2aWV3TGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5yZXBseVByZXZpZXdTZW5kZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5yZXBseVByZXZpZXdUZXh0IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG9wYWNpdHk6IDAuOTtcbn1cblxuLnJlcGx5UHJldmlld0Rpc21pc3NCdXR0b24ge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1yZXBseS1kaXNtaXNzLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LXJlcGx5LWRpc21pc3MtY29sb3IpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xOHMgZWFzZSwgY29sb3IgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG5cbi5yZXBseVByZXZpZXdEaXNtaXNzQnV0dG9uOmhvdmVyLFxuLnJlcGx5UHJldmlld0Rpc21pc3NCdXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtcmVwbHktZGlzbWlzcy1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1yZXBseS1kaXNtaXNzLWhvdmVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xufVxuXG5Ac3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYgNTAlKSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE1OGRlZyxcbiAgICAgICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA4NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAxNCUpLFxuICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDk1JSwgcmdiYSgyLCA2LCAyMywgMC4wOCkgNSUpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzIlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KSAyOCVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLWxpbmstY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDcyJSwgIzdkZDNmYyAyOCUpO1xuICAgICAgICAtLWNoYXQtbWQtbXV0ZWQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDg0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NSUsIHJnYmEoMTUsIDIzLCA0MiwgMC4yKSAzNSUpO1xuICAgICAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgLS1jaGF0LW1kLWJsb2NrcXVvdGUtYmc6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDIyJVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDM0JSwgIzdkZDNmYyA2NiUpO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAyMiUpO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZzogY29sb3ItbWl4KFxuICAgICAgICAgICAgaW4gc3JnYixcbiAgICAgICAgICAgIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDcwJSxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44MikgMzAlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjQlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSAzNiVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLXRhYmxlLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTglLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDU1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSA0NSUpO1xuICAgIH1cbn1cblxuLyogQ29weSBidXR0b24gc3R5bGVzICovXG4uY29weUJ1dHRvbkNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTJweDtcbiAgICB6LWluZGV4OiAzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQ6aG92ZXIgLmNvcHlCdXR0b25Db250YWluZXIsXG4uY29weUJ1dHRvbkNvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4IDEycHg7XG59XG5cbi5hcnRpY2xlTW9kZU1lc3NhZ2VDb250cm9scyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogYXV0bztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLm1lc3NhZ2VDb250cm9sR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMgLmNvcHlCdXR0b24sXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAucGxheUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGF0LWFydGljbGUtY29udHJvbC1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWNvbG9yKTtcbn1cblxuLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMgLnBsYXlCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCksXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAuY29weUJ1dHRvbjpob3Zlcixcbi5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIC5jb3B5QnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItc2hhZG93KTtcbn1cblxuLmNvcHlCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNoYWRvdyk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzLCBib3gtc2hhZG93IDAuMTVzLCBib3JkZXIgMC4xNXM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xufVxuXG4ucGxheUJ1dHRvbiB7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1iYWNrZ3JvdW5kKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtY29sb3IpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ucGxheUJ1dHRvbkljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuLnBsYXlCdXR0b25TcGlubmVyIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNwaW5uZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1zcGlubmVyLWFjY2VudC1jb2xvcik7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlUGxheVNwaW5uZXIgMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5wbGF5QnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItc2hhZG93KTtcbn1cblxuLnBsYXlCdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG5Aa2V5ZnJhbWVzIG1lc3NhZ2VQbGF5U3Bpbm5lciB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbi5jb3BpZWRUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMTEwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogIzIyMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAwLjk4ZW07XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICAgIG9wYWNpdHk6IDAuOTc7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIGFuaW1hdGlvbjogY29waWVkVG9vbHRpcEZhZGVJbiAwLjJzO1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uY29waWVkVG9vbHRpcExlZnQge1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNvcGllZFRvb2x0aXBSaWdodCB7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIFJlbW92ZWQgcmlnaHQtYWxpZ25lZCBvdmVycmlkZSB0byBrZWVwIHRvb2x0aXAgcG9zaXRpb24gc3RhYmxlICovXG5cbkBrZXlmcmFtZXMgY29waWVkVG9vbHRpcEZhZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45Nyk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMC45NztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4uY29weUJ1dHRvbjpob3Zlcixcbi5jb3B5QnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1ib3JkZXItY29sb3IpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItc2hhZG93KTtcbn1cblxuLmNvcHlCdXR0b24gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLkNoYXRbZGF0YS1jaGF0LXRoZW1lPSdkYXJrJ10gLmNvcHlCdXR0b24gc3ZnIHJlY3Qge1xuICAgIGZpbGw6ICNjYmQ1ZTE7XG4gICAgc3Ryb2tlOiAjOTRhM2I4O1xufVxuXG4vKiBNYXJrZG93biBwcmltaXRpdmVzIGFyZSBpbnRlbnRpb25hbGx5IGNlbnRyYWxpemVkIGluIGBNYXJrZG93bkNvbnRlbnQubW9kdWxlLmNzc2AuICovXG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1idWJibGUtc2hhZG93LWhvdmVyKSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1jaGF0LW1lc3NhZ2Utc3dpcGUtb2Zmc2V0LCAwcHgpKSB0cmFuc2xhdGVZKC0xLjVweCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dC5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZVRleHQ6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKiBBdHRhY2htZW50cyBzdHlsZXMgKi9cbi5hdHRhY2htZW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjI4KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmF0dGFjaG1lbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA3cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3NCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAyNiUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE2JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uYXR0YWNobWVudFdpdGhSZW1vdmUge1xuICAgIGdhcDogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hdHRhY2htZW50TWFpbkFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA3cHggOHB4IDdweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hdHRhY2htZW50UmVtb3ZlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kIDAuMnMgZWFzZSxcbiAgICAgICAgb3BhY2l0eSAwLjJzIGVhc2UsXG4gICAgICAgIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5hdHRhY2htZW50UmVtb3ZlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE4KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNCk7XG59XG5cbi5hdHRhY2htZW50UmVtb3ZlQnV0dG9uIHN2ZyB7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xufVxuXG4uYXR0YWNobWVudFdpdGhSZW1vdmUgLmF0dGFjaG1lbnROYW1lIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5hdHRhY2htZW50OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2MiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzOCUpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4uYXR0YWNobWVudEljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5hdHRhY2htZW50TmFtZSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vKiBNZXNzYWdlIGJ1dHRvbnMgY29udGFpbmVyICovXG4ubWVzc2FnZUJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOXB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNik7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIEluZGl2aWR1YWwgbWVzc2FnZSBidXR0b24gKi9cbi5tZXNzYWdlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgMjIlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuOSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxOCUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1lc3NhZ2VCdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogcHJvZ3Jlc3M7XG4gICAgb3BhY2l0eTogMC43MjtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1lc3NhZ2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjYlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgMzQlKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDI2JSwgIzdkZDNmYyA3NCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNCk7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmhvdmVyOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgMjIlKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cblxuLmFjdGlvbk1lc3NhZ2VCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTUsIDY1LCA4MSwgMC45Mik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTUpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYWN0aW9uTWVzc2FnZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzMSwgNDEsIDU1LCAwLjk4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTcsIDI0LCAzOSwgMC45OCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDE1LCAyMywgNDIsIDAuMzIpO1xufVxuXG4uYWN0aW9uTWVzc2FnZUJ1dHRvbjpob3ZlcjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NSwgNjUsIDgxLCAwLjkyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgMC45NSk7XG59XG5cbi8qIFJlbW92ZSBkZWZhdWx0IG1hcmtkb3duIHN0eWxlcyBmcm9tIGJ1dHRvbiBjb250ZW50ICovXG4ubWVzc2FnZUJ1dHRvbiBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLm1lc3NhZ2VCdXR0b24gc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWVzc2FnZUJ1dHRvbiBlbSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiBSYXRpbmcgc3lzdGVtICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDJweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMjRweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nLmFydGljbGVNb2RlUmF0aW5nIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgei1pbmRleDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWFydGljbGUtcmF0aW5nLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2U6aG92ZXIgLnJhdGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcuYXJ0aWNsZU1vZGVSYXRpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGF0LWFydGljbGUtcmF0aW5nLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LWFydGljbGUtcmF0aW5nLXNoYWRvdyk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nIHNwYW4ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZzpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5mZWVkYmFja0lzc3VlQnV0dG9uIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUJsYWNrJywgJ05vdG8gRW1vamknLCAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBDaGF0IGlucHV0IGFyZWEgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgei1pbmRleDogMTA7XG4gICAgZ3JpZC1hcmVhOiDwn5OdO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyMHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYXQtaW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWlucHV0LWJhY2tkcm9wKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRJbnB1dCB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LXBhZGRpbmctaW5saW5lKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LXBhZGRpbmctaW5saW5lKTtcbn1cblxuLmFydGljbGVNb2RlQ2hhdElucHV0ID4gOm5vdCguc3BlZWNoU3RhdHVzQnViYmxlKTpub3QoLmRyYWdPdmVybGF5KSB7XG4gICAgd2lkdGg6IG1pbih2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LW1heC13aWR0aCksIDEwMCUpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5DaGF0LmZ1bGxQYWdlVmlzdWFsIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1mdWxsLXBhZ2UtaW5wdXQtYmFja2Ryb3ApO1xufVxuXG4vKiBGaWxlIHVwbG9hZCBkcmFnLWFuZC1kcm9wIHN0eWxlcyAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0LmRyYWdPdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWlucHV0LWRyYWctb3Zlci1iYWNrZHJvcCk7XG59XG5cbi8qIEZpbGUgcHJldmlldyBjb250YWluZXIgKi9cbi5maWxlUHJldmlld0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uZmlsZVByZXZpZXdDb250YWluZXIuYXR0YWNobWVudHMge1xuICAgIC0tbWVzc2FnZS1iZy1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xuICAgIC0tbWVzc2FnZS10ZXh0LWNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgY29sb3I6IHZhcigtLWlucHV0LXRleHQtY29sb3IpO1xufVxuXG4vKiBJbmRpdmlkdWFsIGZpbGUgcHJldmlldyAqL1xuLmZpbGVQcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1maWxlLXByZXZpZXctYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1maWxlLXByZXZpZXctYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uZmlsZVByZXZpZXc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtZmlsZS1wcmV2aWV3LWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhdC1maWxlLXByZXZpZXctaG92ZXItYm9yZGVyLWNvbG9yKTtcbn1cblxuLmZpbGVJY29uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4uZmlsZUluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5maWxlTmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1maWxlLW5hbWUtY29sb3IpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uZmlsZVNpemUge1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWZpbGUtc2l6ZS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucmVtb3ZlRmlsZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuMSk7XG4gICAgY29sb3I6ICNmZjQ0NDQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucmVtb3ZlRmlsZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuMik7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4vKiBJbnB1dCBjb250YWluZXIgZm9yIHRleHRhcmVhIGFuZCBidXR0b25zICovXG4uaW5wdXRDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMjZweDtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LWlucHV0LWNvbnRhaW5lci1zaGFkb3cpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmlucHV0Q29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSk7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQycHggcmdiYSgxNSwgMjMsIDQyLCAwLjE2KSwgMCAwIDAgNHB4IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjE2KTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSkgNTglLCByZ2JhKDE1LCAyMywgNDIsIDAuMikgNDIlKTtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpLFxuICAgICAgICAwIDAgMCA0cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5DaGF0W2RhdGEtY2hhdC10aGVtZT0nZGFyayddIC5pbnB1dENvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjYpO1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0NHB4IHJnYmEoMiwgNiwgMjMsIDAuNDgpLCAwIDAgMCA0cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTgpO1xufVxuXG4uaW5wdXRDb250YWluZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLyogQXR0YWNobWVudCBidXR0b24gKi9cbi5hdHRhY2htZW50QnV0dG9uIHtcbiAgICB3aWR0aDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1jb2xvcik7XG59XG5cbi5hdHRhY2htZW50QnV0dG9uOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLyogVm9pY2UgQnV0dG9uICovXG4udm9pY2VCdXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udm9pY2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1jb2xvcik7XG59XG5cbi52b2ljZUJ1dHRvbkFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uOiB2b2ljZVJlY29yZGluZ1B1bHNlIDEuNXMgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbiAgICBib3R0b206IDg2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDAlIC0gNDhweCkpO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtc3BlZWNoLXN0YXR1cy1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtc3BlZWNoLXN0YXR1cy1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1zcGVlY2gtc3RhdHVzLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LXNwZWVjaC1zdGF0dXMtc2hhZG93KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB6LWluZGV4OiAyNTtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZUluIDAuMnMgZWFzZS1vdXQ7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtc3BlZWNoLXN0YXR1cy1kb3QtYmFja2dyb3VuZCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYW5pbWF0aW9uOiBzcGVlY2hTdGF0dXNCdWJibGVEb3RQdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUmVjb3JkaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45Nyk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogI2VmNDQ0NDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3Npbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNCwgMTE2LCAxNDQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM2LCAyNTQsIDI1NSwgMC45Nyk7XG4gICAgY29sb3I6ICMxNTVlNzU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVQcm9jZXNzaW5nIC5zcGVlY2hTdGF0dXNCdWJibGVEb3Qge1xuICAgIGJhY2tncm91bmQ6ICMwZWE1ZTk7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIyMCwgMzgsIDM4LCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjQyLCAyNDIsIDAuOTgpO1xuICAgIGNvbG9yOiAjOTkxYjFiO1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlRXJyb3IgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogI2RjMjYyNjtcbiAgICBhbmltYXRpb246IG5vbmU7XG59XG5cbi5DaGF0W2RhdGEtY2hhdC10aGVtZT0nZGFyayddIC5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDgsIDExMywgMTEzLCAwLjQ0KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNywgMjksIDI5LCAwLjcyKTtcbiAgICBjb2xvcjogI2ZlY2FjYTtcbn1cblxuLkNoYXRbZGF0YS1jaGF0LXRoZW1lPSdkYXJrJ10gLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3Npbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjQ0KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDgsIDQ3LCA3MywgMC43NCk7XG4gICAgY29sb3I6ICNiYWU2ZmQ7XG59XG5cbi5DaGF0W2RhdGEtY2hhdC10aGVtZT0nZGFyayddIC5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjcsIDI5LCAyOSwgMC44Mik7XG4gICAgY29sb3I6ICNmZWNhY2E7XG59XG5cbi5kaWN0YXRpb25QYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1iYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cblxuLmRpY3RhdGlvblBhbmVsSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uUGFuZWxUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi10aXRsZS1jb2xvcik7XG59XG5cbi5kaWN0YXRpb25QYW5lbFRvZ2dsZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi10b2dnbGUtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1kaWN0YXRpb24tdG9nZ2xlLWNvbG9yKTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkludGVyaW1UcmFuc2NyaXB0IHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1kaWN0YXRpb24tdHJhbnNjcmlwdC1iYWNrZ3JvdW5kKTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi10cmFuc2NyaXB0LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGljdGF0aW9uRXJyb3JQYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjAsIDM4LCAzOCwgMC4yNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI0MiwgMjQyLCAwLjk1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBjb2xvcjogIzk5MWIxYjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmRpY3RhdGlvbkVycm9yQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5kaWN0YXRpb25FcnJvckFjdGlvbnMgYnV0dG9uLFxuLmRpY3RhdGlvbkNvcnJlY3Rpb25BY3Rpb25zIGJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1jb2xvcik7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvblBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLWxhYmVsLWNvbG9yKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uVGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDY4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tdGV4dGFyZWEtY29sb3IpO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1iYWNrZ3JvdW5kKTtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25BY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4IDEycHg7XG59XG5cbi5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1kaWN0YXRpb24tc2V0dGluZ3MtY29sb3IpO1xufVxuXG4uZGljdGF0aW9uRmFsbGJhY2tOb3RlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1mYWxsYmFjay1jb2xvcik7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSBzY2FsZSgwLjk4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODIpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB2b2ljZVJlY29yZGluZ1B1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDAsIDAsIDAuNCk7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgyNTUsIDAsIDAsIDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxufVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgaW5kaWNhdG9yICovXG4udXBsb2FkUHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG59XG5cbi51cGxvYWRQcm9ncmVzc0JhciB7XG4gICAgZmxleDogMTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udXBsb2FkUHJvZ3Jlc3NGaWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA4NGZmLCByZ2JhKDAsIDEzMiwgMjU1LCAwLjgpKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYW5pbWF0aW9uOiB1cGxvYWRQcm9ncmVzcyAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHVwbG9hZFByb2dyZXNzIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxufVxuXG4vKiBEcmFnIG92ZXJsYXkgKi9cbi5kcmFnT3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCByZ2JhKDAsIDEzMiwgMjU1LCAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRyYWdPdmVybGF5Q29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGNvbG9yOiAjMDA4NGZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHN2ZyB7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBDaGF0IGlucHV0IGZpZWxkICovXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXkpIHZhcigtLWNoYXQtaW5wdXQtcGFkZGluZy14KTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtaW5wdXQtdGV4dC1jb2xvcik7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGF0LWlucHV0LWZvbnQtc2l6ZSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMDJlbTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWE6Zm9jdXMge1xuICAgIC8qIEZvY3VzIGlzIGhhbmRsZWQgYnkgLmlucHV0Q29udGFpbmVyICovXG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvcik7XG4gICAgb3BhY2l0eTogMC45O1xufVxuXG4vKiBDaGF0IHNlbmQgYnV0dG9uICovXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ10ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBtaW4td2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcblxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMjUpO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMzUpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ106YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ10gc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24gaW1nIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBTY3JvbGwgdG8gYm90dG9tIGJ1dHRvbiAqL1xuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIge1xuICAgIC8qL1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgcmVkO1xuICAgIC8qKi9cblxuICAgIHotaW5kZXg6IDIwO1xuICAgIGdyaWQtYXJlYTog8J+TnTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIgLnNjcm9sbFRvQm90dG9tV3JhcHBlciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTE1MCUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYW5pbWF0aW9uOiBzY3JvbGxCdXR0b25TbGlkZUluIDAuM3MgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIgLnNjcm9sbFRvQm90dG9tIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCAwIDAgLyAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbEJ1dHRvblNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAyMHB4KSBzY2FsZSgwLjgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4uc2Nyb2xsVG9Cb3R0b21CYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLThweDtcbiAgICByaWdodDogLThweDtcbiAgICBtaW4td2lkdGg6IDMycHg7XG4gICAgcGFkZGluZzogMnB4IDZweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgzNywgOTksIDIzNSwgMC40KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBSYXRpbmcgbW9kYWwgKi9cbi5yYXRpbmdNb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC43Nik7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBhbmltYXRpb246IG1vZGFsRmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbW9kYWxGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ucmF0aW5nTW9kYWxDb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzI0O1xuICAgIHBhZGRpbmc6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgYW5pbWF0aW9uOiBtb2RhbFNsaWRlSW4gMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG5cbiAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiwgJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjayc7XG4gICAgLyogPC0gVE9ETzogW/Cfp6BdW/CfjrFdIEJldHRlciwgZGVmaW5lIG90aGVyIGZvbnRzICovXG59XG5cbkBrZXlmcmFtZXMgbW9kYWxTbGlkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpIHNjYWxlKDAuOTUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5yYXRpbmdNb2RhbENvbnRlbnQgaDMge1xuICAgIG1hcmdpbjogMCAwIDI0cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc3RhcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLnN0YXJzIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uc3RhcnMgc3Bhbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMTUsIDAsIDAuMSk7XG59XG5cbi5yYXRpbmdNb2RhbFN0YXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbn1cblxuLnJhdGluZ01vZGFsW2RhdGEtY2hhdC1tb2RhbD0naW1hZ2UtYXR0YWNobWVudCddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDI0cHg7XG59XG5cbi5yYXRpbmdNb2RhbFtkYXRhLWNoYXQtbW9kYWw9J2NpdGF0aW9uLWJyb3dzZXInXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAyNHB4O1xufVxuXG4udG9vbENhbGxNb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jaXRhdGlvbkJyb3dzZXJNb2RhbCB7XG4gICAgd2lkdGg6IG1pbig5MHZ3LCA4MDBweCk7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSA0OHB4KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uY2l0YXRpb25Ccm93c2VyTW9kYWxCb2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5pbWFnZUF0dGFjaG1lbnRNb2RhbCB7XG4gICAgd2lkdGg6IG1pbig5MnZ3LCAxMDQwcHgpO1xuICAgIG1heC13aWR0aDogMTA0MHB4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uaW1hZ2VBdHRhY2htZW50TW9kYWxIZWFkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggNjhweCAxNHB4IDI0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmltYWdlQXR0YWNobWVudE1vZGFsVGl0bGUge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMGYxNzJhICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLmltYWdlQXR0YWNobWVudE1vZGFsUHJldmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEzMHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDEzMHB4KTtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICMwZjE3MmE7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaW1hZ2VBdHRhY2htZW50TW9kYWxJbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNjJweCk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSAxNjJweCk7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnRvb2xDYWxsSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZWYyZmYgMCUsICNmNWYzZmYgNDAlLCAjZmVmY2M5IDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udG9vbENhbGxJY29uIHtcbiAgICBmb250LXNpemU6IDMycHg7XG59XG5cbi50b29sQ2FsbEhlYWRlck1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnRvb2xDYWxsTW9kYWxMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBtYXJnaW46IDA7XG59XG5cbi50b29sQ2FsbFRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbFN1YnRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4udG9vbENhbGxHcmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xufVxuXG4udG9vbENhbGxQYW5lbCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgcGFkZGluZzogMThweDtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDBweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udG9vbENhbGxQYW5lbFRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4udG9vbENhbGxMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi50b29sQ2FsbEl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnRvb2xDYWxsSXRlbUxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4udG9vbENhbGxJdGVtVmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4udG9vbENhbGxTdW1tYXJ5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi50b29sQ2FsbFN1bW1hcnlNZXRhIHtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxTdW1tYXJ5TWV0YUJhZGdlIHtcbiAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc5LCA3MCwgMjI5LCAwLjE1KTtcbiAgICBjb2xvcjogIzMxMmU4MTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnRvb2xDYWxsRW1wdHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdDYXJkIHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y4ZmJmZiAwJSwgI2Y4ZmFmYyAxMDAlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1RpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0JhZGdlIHtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4xMik7XG4gICAgY29sb3I6ICMwMzY5YTE7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udG9vbENhbGxQZW5kaW5nTWVzc2FnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uTGluZSB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpLCByZ2JhKDI0MSwgMjQ1LCAyNDksIDEpLCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNykpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgIGFuaW1hdGlvbjogdG9vbENhbGxQZW5kaW5nU2tlbGV0b25QdWxzZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b25TaG9ydCB7XG4gICAgd2lkdGg6IDY4JTtcbn1cblxuQGtleWZyYW1lcyB0b29sQ2FsbFBlbmRpbmdTa2VsZXRvblB1bHNlIHtcbiAgICBmcm9tIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgNTAlO1xuICAgIH1cbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmQge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjMzM0MTU1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOSk7XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdyBzdHJvbmcge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxJc3N1ZXMge1xuICAgIHBhZGRpbmc6IDAgMzJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxJc3N1ZUJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xufVxuXG4udG9vbENhbGxJc3N1ZUVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuLnRvb2xDYWxsSXNzdWVXYXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNCwgMTc5LCA4LCAwLjE2KTtcbiAgICBjb2xvcjogI2ExNjIwNztcbn1cblxuLnRvb2xDYWxsTW9kZUZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMzJweCAyNHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItY29sb3I6ICM5NGEzYjg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4udG9vbENhbGxDbG9ja1BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLnRvb2xDYWxsQ2xvY2tMYWJlbHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRvb2xDYWxsQ2xvY2tQcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxDbG9ja1NlY29uZGFyeSB7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi50b29sQ2FsbENsb2NrTWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBjb2xvcjogIzY2NzA4NTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi50aW1lb3V0VG9vbFN1bW1hcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi50aW1lb3V0VG9vbFByaW1hcnlTZW50ZW5jZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbFNlY29uZGFyeVNlbnRlbmNlIHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbEFjdGlvblJvdyB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTRhM2I4O1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAwLjQ1O1xufVxuXG4ubWVtb3J5TW9kYWxIZWFkZXIge1xuICAgIHBhZGRpbmc6IDI4cHggMzJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZGZkZmQgMCUsICNmNmY5ZmYgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5tZW1vcnlNb2RhbEljb24ge1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2MzY2ZjEsICNhODU1ZjcpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG59XG5cbi5tZW1vcnlNb2RhbEhlYWRlclRleHQge1xuICAgIGZsZXg6IDE7XG59XG5cbi5tZW1vcnlNb2RhbFRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5tZW1vcnlNb2RhbFN1YnRpdGxlIHtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWVtb3J5TW9kYWxTdGF0dXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbW9yeVN0YXR1c0RvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lbW9yeU1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDMycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubWVtb3J5TWVzc2FnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWVtb3J5TWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi5tZW1vcnlNZXRhTGFiZWwge1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWVtb3J5TWV0YVZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ubWVtb3J5U3RvcmVTZWN0aW9uLFxuLm1lbW9yeVJldHJpZXZlU2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLm1lbW9yeUNhcmRDb250ZW50IHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm1lbW9yeUNhcmRNZXRhIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWVtb3J5U2NvcGVCYWRnZSB7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjQsIDU4LCAyMzcsIDAuMTIpO1xufVxuXG4ubWVtb3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUVtcHR5U3RhdGUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjNjNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmRlNjhhO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgY29sb3I6ICM5MjQwMGU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbW9yeUxpc3RGb290ZXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW1vcnlTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNik7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5tZW1vcnlTdGF0dXNXYXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNCwgMTc5LCA4LCAwLjE2KTtcbiAgICBjb2xvcjogI2ExNjIwNztcbn1cblxuLm1lbW9yeVN0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuLm1lbW9yeVN0YXR1c05ldXRyYWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KTtcbiAgICBjb2xvcjogIzFkNGVkODtcbn1cblxuLnNlYXJjaE1vZGFsSGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogNzJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7XG59XG5cbi5zZWxmTGVhcm5pbmdNb2RhbEhlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZmFmYyAwJSwgI2ZlZjljMyA0NSUsICNlY2ZjY2IgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXJHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhciB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlOGYwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFySW5pdGlhbCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWxmTGVhcm5pbmdUZWFjaGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmRlNjhhIDAlLCAjODZlZmFjIDEwMCUpO1xufVxuXG4uc2VsZkxlYXJuaW5nSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWxmTGVhcm5pbmdUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhQ2hpcCB7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlbGZMZWFybmluZ0NvbW1pdG1lbnRzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nQ29tbWl0bWVudHNMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2VsZkxlYXJuaW5nQm9va0VkaXRvciB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdFbXB0eSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzk0YTNiODtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4udGVhbU1vZGFsSGVhZGVyIHtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGVhbUhlYWRlclBhcnRpY2lwYW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50ZWFtSGVhZGVyUHJvZmlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4udGVhbUhlYWRlclByb2ZpbGVMaW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRlYW1IZWFkZXJBdmF0YXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udGVhbUhlYWRlck5hbWUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udGVhbUhlYWRlckRpdmlkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uc2VhcmNoTW9kYWxJY29uIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLnNlYXJjaE1vZGFsUXVlcnkge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjEyNCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnNlYXJjaE1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udGVhbUNoYXRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnRlYW1Ub29sQ2FsbFNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi50ZWFtVG9vbENhbGxHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsSGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4udGVhbVRvb2xDYWxsQ2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlscyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0NsZWFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNDbGVhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbn1cblxuLnNlYXJjaFJlc3VsdHNMaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWFyY2hSZXN1bHRzUmF3IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC13aWR0aDogNjUwcHg7XG59XG5cbi5zZWFyY2hSZXN1bHRJdGVtIHtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4uc2VhcmNoUmVzdWx0VXJsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMyMDIxMjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNlYXJjaFJlc3VsdFVybCBhIHtcbiAgICBjb2xvcjogIzIwMjEyNDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSB7XG4gICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDRweCAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGEge1xuICAgIGNvbG9yOiAjMWEwZGFiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc2VhcmNoUmVzdWx0U25pcHBldCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU4O1xuICAgIGNvbG9yOiAjNGQ1MTU2O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm5vUmVzdWx0cyB7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM3MDc1N2E7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMjBweCAwO1xufVxuLmNpdGF0aW9uRGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cblxuLmNpdGF0aW9uUHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG5cbi5jaXRhdGlvbklmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNpdGF0aW9uSWZyYW1lTG9hZGluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4uY2l0YXRpb25TY3JlZW5zaG90RmFsbGJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jaXRhdGlvblNjcmVlbnNob3RJbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNpdGF0aW9uU2NyZWVuc2hvdExpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBjb2xvcjogIzMzMztcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7XG59XG5cbi5jaXRhdGlvblNjcmVlbnNob3RMaW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uY2l0YXRpb25Ccm93c2VyTW9kYWwgLmxpdmVCcm93c2VyUHJldmlldyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlldzpmdWxsc2NyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGYxNzJhO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJCdXR0b24ge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VG9vbGJhckJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3Wm9vbUxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJDbG9zZUJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJDbG9zZUJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1VybEZvcm0ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMCA0cHg7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdVcmxJbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VXJsSW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzk0YTNiODtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1N0cmVhbUFyZWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDYwdmg7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLmNpdGF0aW9uQnJvd3Nlck1vZGFsIC5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1BcmVhIHtcbiAgICBoZWlnaHQ6IG1pbig2MHZoLCA2NDBweCk7XG4gICAgbWluLWhlaWdodDogbWluKDQwMHB4LCBjYWxjKDEwMGR2aCAtIDE0MHB4KSk7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1BcmVhOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjOTRhM2I4O1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3OmZ1bGxzY3JlZW4gLmxpdmVCcm93c2VyUHJldmlld1N0cmVhbUFyZWEge1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1JbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3Q29ubmVjdGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3T3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNTUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld092ZXJsYXlCdXR0b24ge1xuICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHAge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgc3Ryb25nIHtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYSB7XG4gICAgY29sb3I6ICMwMDdiZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jaXRhdGlvbkV4Y2VycHQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2l0YXRpb25FeGNlcnB0IGg0IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi5jaXRhdGlvbkhpbnQge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi50b29sQ2FsbERhdGFDb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi50b29sQ2FsbFBheWxvYWRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3IgLm92ZXJmbG93LWd1YXJkKSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3ItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbn1cblxuLnRvb2xDYWxsRGF0YSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4udG9vbENhbGxNb2RhbCAudG9vbENhbGxEYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmF0aW5nSW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4wNSk7XG4gICAgY29sb3I6ICMwYjEyMjA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnJhdGluZ0lucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDg0ZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ucmF0aW5nSW5wdXRbcmVhZG9ubHldIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjAxKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246Zmlyc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpmaXJzdC1jaGlsZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDcxZDEgMCUsICMwMDUyYTMgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZG93bmxvYWRCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA5OWZmIDAlLCAjMDA3N2RkIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG59XG5cbi5kb3dubG9hZEJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHN2ZyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBQcmltYXJ5IGNoYXQgdG9vbGJhciBidXR0b25zICovXG4uY2hhdEJ1dHRvbixcbi51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDExcHggMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDBkZWcsICMwZjhlZjUgMCUsICMwYjZmZDAgNTYlLCAjMGQ1ZmJiIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHggIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgxNCwgMTE2LCAyMTksIDAuMjgpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbiAhaW1wb3J0YW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTEwcHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5jaGF0QnV0dG9uOjpiZWZvcmUsXG4udXNlVGVtcGxhdGVCdXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTEwJTtcbiAgICB3aWR0aDogNzUlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KSA0OCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC40NXMgZWFzZTtcbn1cblxuLmNoYXRCdXR0b246aG92ZXI6OmJlZm9yZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxNDAlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0MGRlZywgIzFhOWFmZiAwJSwgIzBkN2RlOCA1NiUsICMxMTY4YzkgMTAwJSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMzBweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4zNCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi5jaGF0QnV0dG9uOmFjdGl2ZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjk4NSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cblxuLmNoYXRCdXR0b246Zm9jdXMsXG4udXNlVGVtcGxhdGVCdXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgxNCwgMTE2LCAyMTksIDAuMzIpLCAwIDAgMCAzcHggcmdiYSg1NiwgMTg5LCAyNDgsIDAuMjgpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b24gc3ZnLFxuLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgZmlsdGVyIDAuMnMgZWFzZTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMjQpKTtcbn1cblxuLmNoYXRCdXR0b246aG92ZXIgc3ZnLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KSB0cmFuc2xhdGVYKDFweCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI4KSk7XG59XG5cbi5jaGF0QnV0dG9uVGV4dCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQsXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXIgLmNoYXRCdXR0b25UZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcbn1cblxuLnNhdmVCdXR0b25Db250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYXZlTWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc2F2ZU1lbnVJdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzExMTtcbn1cblxuLnNhdmVNZW51SXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cblxuLnNhdmVNZW51RGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBtYXJnaW46IDRweCAwO1xufVxuXG4uY2hhdEZlZWRiYWNrUGFuZWwge1xuICAgIHdpZHRoOiBtaW4oMjYwcHgsIDEwMCUpO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMThweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLmNoYXRGZWVkYmFja1RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cHgpO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMjU2M2ViO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMmZmO1xuICAgIGNvbG9yOiAjNjM2NmYxO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0ndHJ1ZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTBmMmZlO1xuICAgIGNvbG9yOiAjMDI4NGM3O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0nZmFsc2UnXSAuY2hhdEZlZWRiYWNrSWNvbiB7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLmNoYXRGZWVkYmFja01ldGEge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uY2hhdEZlZWRiYWNrRGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvciB7XG4gICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJbmRpY2F0b3JBY3RpdmUge1xuICAgIGNvbG9yOiAjMTY2NTM0O1xuICAgIGJhY2tncm91bmQ6ICNkY2ZjZTc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM0ZDM5OTtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckluYWN0aXZlIHtcbiAgICBjb2xvcjogIzcxM2YxMjtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmOWMzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYWNjMTU7XG59XG5cbi8qIFBhdXNlL1Jlc3VtZSBidXR0b24gdmFyaWFudCAocmV1c2VzIC5jaGF0QnV0dG9uIGJhc2Ugc3R5bGVzIGZvciBEUlkpICovXG4ucGF1c2VCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmIzNDcgMCUsICNmZjhjNDIgMTAwJSkgIWltcG9ydGFudDsgLyogV2FybSBvcmFuZ2UgZm9yIFwiYWN0aXZlL3J1bm5pbmdcIiAqL1xufVxuXG4ucGF1c2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmMwNjcgMCUsICNmZjllNWYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogd2FpdCAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2VkIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpICFpbXBvcnRhbnQ7IC8qIEdyZWVuIHdoZW4gcGF1c2VkIChyZWFkeSB0byByZXN1bWUpICovXG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzNGQzOTkgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zNSk7XG59XG5cbi5wYXVzZUJ1dHRvbiBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzaW5nIHN2ZyB7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uc3RvcEJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RjMjYyNiAwJSwgIzk5MWIxYyAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjg3MTcxIDAlLCAjZGMyNjI2IDEwMCUpICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnN0b3BCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMjQ4LCAxMTMsIDExMywgMC44KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciBiYXIgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3JCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4xKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMSkgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4yKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMikgMTAwJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGNvbG9yOiAjMTBiOTgxO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxJY29uUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogVm9pY2UgY2FsbCBwdWxzZSBhbmltYXRpb24gKi9cbi52b2ljZUNhbGxQdWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbEljb25QdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB2b2ljZUNhbGxQdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMyk7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGluIG1lc3NhZ2VzICovXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xufVxuXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLyogRmVlZGJhY2sgc3RhdHVzIGJhbm5lciAqL1xuLmZlZWRiYWNrU3RhdHVzIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAzMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zNSk7XG4gICAgei1pbmRleDogMTAwMDA7IC8qIFtGaXggei1pbmRleF06IEVuc3VyZSBpdCdzIGFib3ZlIHRoZSBoZWFkZXIgKHotNTApIGFuZCBvdGhlciBVSSBlbGVtZW50cyAqL1xuICAgIGFuaW1hdGlvbjogZmVlZGJhY2tTdGF0dXNTbGlkZUluIDAuMjhzIGVhc2Utb3V0O1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNFcnJvciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCAwJSwgI2RjMjYyNiAxMDAlKTtcbiAgICBjb2xvcjogI2ZlZjJmMjtcbn1cblxuQGtleWZyYW1lcyBmZWVkYmFja1N0YXR1c1NsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5DaGF0IHtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDM2cHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgODUlLFxuICAgICAgICAgICAgNTYwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiAxMHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy15OiAxNHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy14OiAxOHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemU6IDQ0cHg7XG4gICAgfVxuXG4gICAgLmNvbnN0cmFpbmVkQXJ0aWNsZVZpc3VhbCB7XG4gICAgICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZTogY2xhbXAoMjRweCwgNnZ3LCAzNnB4KTtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIC5tZXNzYWdlU3RhY2sge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY4O1xuICAgIH1cblxuICAgIC5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIH1cblxuICAgIC8qIFvjipfvuI9dXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICB9XG4gICAgKi9cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDE2cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNwZWVjaFN0YXR1c0J1YmJsZSB7XG4gICAgICAgIHJpZ2h0OiAxNHB4O1xuICAgICAgICBib3R0b206IDc2cHg7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjhweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgcGFkZGluZzogN3B4IDExcHg7XG4gICAgfVxuXG4gICAgLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIH1cblxuICAgIC5zY3JvbGxUb0JvdHRvbSB7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSAxNjBweCk7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxDb250ZW50LmltYWdlQXR0YWNobWVudE1vZGFsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDMycHgpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zdGFycyB7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5zdGFycyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01vZGFsSGVhZGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ0F2YXRhckdyb3VwIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5zZWxmTGVhcm5pbmdNZXRhUm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogODBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDMycHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgOTAlLFxuICAgICAgICAgICAgNTIwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiA4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEycHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogOHB4IDEycHggMDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgfVxuXG4gICAgLyogW+OKl++4j11cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIH1cbiAgICAqL1xuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyxcbiAgICAuZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE0MHB4KTtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsW2RhdGEtY2hhdC1tb2RhbD0naW1hZ2UtYXR0YWNobWVudCddIHtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxbZGF0YS1jaGF0LW1vZGFsPSdjaXRhdGlvbi1icm93c2VyJ10ge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyMHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQuaW1hZ2VBdHRhY2htZW50TW9kYWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI0cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDI0cHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQuY2l0YXRpb25Ccm93c2VyTW9kYWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE2cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDE2cHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIH1cblxuICAgIC5jaXRhdGlvbkJyb3dzZXJNb2RhbCAubGl2ZUJyb3dzZXJQcmV2aWV3U3RyZWFtQXJlYSB7XG4gICAgICAgIGhlaWdodDogNTh2aDtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDMyMHB4LCBjYWxjKDEwMGR2aCAtIDExMnB4KSk7XG4gICAgfVxuXG4gICAgLmltYWdlQXR0YWNobWVudE1vZGFsSGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMTZweCA1NnB4IDEycHggMTZweDtcbiAgICB9XG5cbiAgICAuaW1hZ2VBdHRhY2htZW50TW9kYWxQcmV2aWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDk2cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDk2cHgpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cblxuICAgIC5pbWFnZUF0dGFjaG1lbnRNb2RhbEltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEyMHB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSAxMjBweCk7XG4gICAgfVxufVxuXG4vKiBSZWR1Y2VkIG1vdGlvbiBzdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLFxuICAgIC5zY3JvbGxUb0JvdHRvbSxcbiAgICAucmF0aW5nTW9kYWwsXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCxcbiAgICAuZmVlZGJhY2tTdGF0dXMge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uLFxuICAgIC8qIFvjipfvuI9dIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nLCAqL1xuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8qIEhpZ2ggY29udHJhc3QgbW9kZSBzdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IGhpZ2gpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICB9XG59XG5cbi8qIEVtYWlsIG1vZGFsIHN0eWxlcyAqL1xuLmVtYWlsQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi5lbWFpbE1vZGFsSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uZW1haWxIZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5lbWFpbEhlYWRlckxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uZW1haWxNZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5lbWFpbEZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmVtYWlsRmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVtYWlsRmllbGQgc3Ryb25nIHtcbiAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmVtYWlsUmVjaXBpZW50cyB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmVtYWlsQm9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmVtYWlsQm9keSBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAyMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQgcCB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xufVxuXG4uZW1haWxCb2R5Q29udGVudCBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5icm93c2VyUnVuTW9kYWxIZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGZhZmMgMCUsICNlY2ZlZmYgNDAlLCAjZWNmY2NiIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGJlYWZlO1xufVxuXG4uYnJvd3NlclJ1bkhlYWRlclRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJTdGF0dXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLmJyb3dzZXJSdW5NZXRhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMThweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5XYXJuaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYmJmMjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmYmViO1xuICAgIGNvbG9yOiAjOTI0MDBlO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbn1cblxuLmJyb3dzZXJSdW5FcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmNhNWE1O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjJmMjtcbiAgICBjb2xvcjogIzdmMWQxZDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3JTdW1tYXJ5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3JTdGVwcyB7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyBzdW1tYXJ5IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM3ZjFkMWQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMgcHJlIHtcbiAgICBtYXJnaW46IDEwcHggMCAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjdlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVkN2FhO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbi5icm93c2VyUnVuRmFsbGJhY2tDb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbn1cblxuLmJyb3dzZXJSdW5TdGF0dXNCYW5uZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTUpO1xuICAgIGNvbG9yOiAjMzM0MTU1O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhR3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIyMHB4LCAxZnIpKTtcbiAgICBnYXA6IDE0cHg7XG59XG5cbi5icm93c2VyUnVuTWVkaWFDYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuTWVkaWFDYXJkSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5icm93c2VyUnVuTWVkaWFUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhSW1hZ2UsXG4uYnJvd3NlclJ1bk1lZGlhVmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG1heC1oZWlnaHQ6IDI2MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTG9nIHtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25Mb2dUaXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkl0ZW0ge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjkpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uUGVuZGluZyB7XG4gICAgb3BhY2l0eTogMC44Mjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25SdW5uaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uQ29tcGxldGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMjIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25FcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjI0KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZSB7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNjYmQ1ZTE7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGVSdW5uaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGVhNWU5O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDE0LCAxNjUsIDIzMywgMC4xNCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGVDb21wbGV0ZSB7XG4gICAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgxNiwgMTg1LCAxMjksIDAuMTIpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlRXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNlZjQ0NDQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbk1ldGEge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAgIC5DaGF0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiA0OHB4IDQwcHggNjRweCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCByZ2JhKDIsIDYsIDIzLCAwLjk4KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjkyKSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU2LCAxODksIDI0OCwgMC4zMikgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0MHB4IDgwcHggcmdiYSgwLCAwLCAwLCAwLjM1KSBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2Uge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgMTQ1ZGVnLFxuICAgICAgICAgICAgdmFyKC0tYWdlbnQtY2hhdC1icmFuZC1jb2xvci1saWdodCwgIzdkZDNmYyksXG4gICAgICAgICAgICB2YXIoLS1hZ2VudC1jaGF0LWJyYW5kLWNvbG9yLCAjMGVhNWU5KVxuICAgICAgICApICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZjhmYWZjICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDE4cHggNDBweCByZ2JhKDIsIDYsIDIzLCAwLjYpIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMjJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZmJmZiAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzBmMTcyYSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNDUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zKSBpbnNldCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1lc3NhZ2VNZXRhLFxuICAgIC5wYXJ0aWNpcGFudExhYmVsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC44KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5hY3Rpb25zLFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCxcbiAgICAuc2Nyb2xsVG9Cb3R0b20sXG4gICAgLmZlZWRiYWNrU3RhdHVzLFxuICAgIC52b2ljZUNhbGxJbmRpY2F0b3JCYXIsXG4gICAgLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY29weUJ1dHRvbkNvbnRhaW5lcixcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uZW1haWxTdGF0dXMge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qKlxuICogVE9ETzogW/CfjIldIERSWSBNYXJrZG93biBwcmltaXRpdmVzIHN0eWxpbmdcbiAqL1xuLyogSW1hZ2UgcHJvbXB0IHByZXZpZXcgc3R5bGVzICovXG4uaW1hZ2VQcm9tcHQge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5pbWFnZVByb21wdFByZXZpZXcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAxMTgsIDI1NSwgMC4wNSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSk7XG59XG5cbi5pbWFnZVByb21wdEltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pbWFnZVByb21wdFBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uaW1hZ2VQcm9tcHRTcGlubmVyIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzI1NjNlYjtcbiAgICBhbmltYXRpb246IGltYWdlUHJvbXB0U3Bpbm5lciAwLjlzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBpbWFnZVByb21wdFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbi5pbWFnZVByb21wdE1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLmltYWdlUHJvbXB0UHJvbXB0IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzExMTtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLmltYWdlUHJvbXB0U3RhdHVzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi5pbWFnZVByb21wdEVycm9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI2RjMjYyNjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgMzgsIDM4LCAwLjA4KTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXIge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMTIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyU3Bpbm5lciB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMjJkM2VlO1xuICAgIGFuaW1hdGlvbjogcmljaEZlYXR1cmVTcGlubmVyIDAuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlckNvcHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyU3RhdHVzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5wcm9ncmVzc1BhbmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSwgcmdiYSgyMTksIDIzNCwgMjU0LCAwLjg2KSk7XG4gICAgcGFkZGluZzogMTJweCAxM3B4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5wcm9ncmVzc1BhbmVsVGl0bGUgcCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFkNGVkODtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uQm9keSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFNlY3Rpb25Cb2R5IHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnByb2dyZXNzUGFuZWxMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLnByb2dyZXNzUGFuZWxMaXN0SXRlbSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdEJ1bGxldCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMjU2M2ViO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1TcGlubmVyIHtcbiAgICB3aWR0aDogMTFweDtcbiAgICBoZWlnaHQ6IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjYpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTYzZWI7XG4gICAgYW5pbWF0aW9uOiBwcm9ncmVzc1BhbmVsU3Bpbm5lciAwLjc1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1Db21wbGV0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xNik7XG4gICAgY29sb3I6ICMxNTgwM2Q7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtVGV4dCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1UZXh0IHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuQGtleWZyYW1lcyBwcm9ncmVzc1BhbmVsU3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyByaWNoRmVhdHVyZVNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iXX0= */";
|
|
22988
|
-
var styles$7 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","constrainedArticleVisual":"Chat-module_constrainedArticleVisual__0axxM","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","articleModeChatMessages":"Chat-module_articleModeChatMessages__ufofT","chatMessage":"Chat-module_chatMessage__nmLaZ","articleModeAgentMessage":"Chat-module_articleModeAgentMessage__Y79L7","messageStack":"Chat-module_messageStack__n0xNL","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","isMe":"Chat-module_isMe__nBtaV","avatar":"Chat-module_avatar__gL6bm","articleModeAgentAvatar":"Chat-module_articleModeAgentAvatar__UCKDX","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageReplyButton":"Chat-module_messageReplyButton__S5hXM","messageReplyButtonIcon":"Chat-module_messageReplyButtonIcon__2Nk3i","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","citationFootnotes":"Chat-module_citationFootnotes__LAWdh","citationFootnoteItem":"Chat-module_citationFootnoteItem__JXTAX","citationFootnoteNumber":"Chat-module_citationFootnoteNumber__CMmm9","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","feedbackStar":"Chat-module_feedbackStar__tC7XH","feedbackStarIcon":"Chat-module_feedbackStarIcon__BuPen","articleModeAgentMessageText":"Chat-module_articleModeAgentMessageText__vBlIP","replyEnabledMessageText":"Chat-module_replyEnabledMessageText__-SV9f","replySwipeActive":"Chat-module_replySwipeActive__dhAqt","replySwipeIndicator":"Chat-module_replySwipeIndicator__u92JU","replySwipeIndicatorRight":"Chat-module_replySwipeIndicatorRight__3CoAW","replySwipeIndicatorActive":"Chat-module_replySwipeIndicatorActive__m9gwU","replySwipeIndicatorIcon":"Chat-module_replySwipeIndicatorIcon__0K1SX","replyPreview":"Chat-module_replyPreview__Lt-Bg","replyBubblePreview":"Chat-module_replyBubblePreview__DNe3r","replyComposerPreview":"Chat-module_replyComposerPreview__80Wdf","replyPreviewAccent":"Chat-module_replyPreviewAccent__Uo3pe","replyPreviewBody":"Chat-module_replyPreviewBody__reKG-","replyPreviewHeading":"Chat-module_replyPreviewHeading__IeegE","replyPreviewLabel":"Chat-module_replyPreviewLabel__J-BrF","replyPreviewSender":"Chat-module_replyPreviewSender__z6SYu","replyPreviewText":"Chat-module_replyPreviewText__cY-Hc","replyPreviewDismissButton":"Chat-module_replyPreviewDismissButton__-L9MF","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","articleModeMessageActions":"Chat-module_articleModeMessageActions__h2qaG","articleModeMessageControls":"Chat-module_articleModeMessageControls__hncCw","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentWithRemove":"Chat-module_attachmentWithRemove__n2-O6","attachmentMainAction":"Chat-module_attachmentMainAction__Onkl3","attachmentRemoveButton":"Chat-module_attachmentRemoveButton__dC5ne","attachmentName":"Chat-module_attachmentName__aMx56","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","articleModeRating":"Chat-module_articleModeRating__dwZqm","feedbackIssueButton":"Chat-module_feedbackIssueButton__9NrrF","chatInput":"Chat-module_chatInput__1Ecan","articleModeChatInput":"Chat-module_articleModeChatInput__zBTV4","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","dragOverlay":"Chat-module_dragOverlay__SEGoS","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","citationBrowserModal":"Chat-module_citationBrowserModal__jYU4c","citationBrowserModalBody":"Chat-module_citationBrowserModalBody__lvTWb","imageAttachmentModal":"Chat-module_imageAttachmentModal__Ef6L5","imageAttachmentModalHeader":"Chat-module_imageAttachmentModalHeader__onK3Z","imageAttachmentModalTitle":"Chat-module_imageAttachmentModalTitle__AhuMt","imageAttachmentModalPreview":"Chat-module_imageAttachmentModalPreview__gXDer","imageAttachmentModalImage":"Chat-module_imageAttachmentModalImage__t61oG","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","toolCallClockPanel":"Chat-module_toolCallClockPanel__h4xZd","toolCallClockLabels":"Chat-module_toolCallClockLabels__KJGxe","toolCallClockPrimary":"Chat-module_toolCallClockPrimary__StLQ8","toolCallClockSecondary":"Chat-module_toolCallClockSecondary__O4WaT","toolCallClockMeta":"Chat-module_toolCallClockMeta__aObb7","timeoutToolSummary":"Chat-module_timeoutToolSummary__kPPvu","timeoutToolPrimarySentence":"Chat-module_timeoutToolPrimarySentence__pQfLn","timeoutToolSecondarySentence":"Chat-module_timeoutToolSecondarySentence__iH5Uc","timeoutToolActionRow":"Chat-module_timeoutToolActionRow__occir","timeoutToolActionButton":"Chat-module_timeoutToolActionButton__8yz0R","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationIframeLoading":"Chat-module_citationIframeLoading__y5VW9","citationScreenshotFallback":"Chat-module_citationScreenshotFallback__jxfJX","citationScreenshotImage":"Chat-module_citationScreenshotImage__hXjC7","citationScreenshotLink":"Chat-module_citationScreenshotLink__NHvbE","liveBrowserPreview":"Chat-module_liveBrowserPreview__D94Kt","liveBrowserPreviewToolbar":"Chat-module_liveBrowserPreviewToolbar__nFgSV","liveBrowserPreviewToolbarButton":"Chat-module_liveBrowserPreviewToolbarButton__R-ZXl","liveBrowserPreviewZoomLabel":"Chat-module_liveBrowserPreviewZoomLabel__PbrV1","liveBrowserPreviewToolbarCloseButton":"Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0","liveBrowserPreviewUrlForm":"Chat-module_liveBrowserPreviewUrlForm__4DSda","liveBrowserPreviewUrlInput":"Chat-module_liveBrowserPreviewUrlInput__AugUm","liveBrowserPreviewStreamArea":"Chat-module_liveBrowserPreviewStreamArea__aIhQx","liveBrowserPreviewStreamImage":"Chat-module_liveBrowserPreviewStreamImage__bpTj3","liveBrowserPreviewConnecting":"Chat-module_liveBrowserPreviewConnecting__8Gn40","liveBrowserPreviewOverlay":"Chat-module_liveBrowserPreviewOverlay__eheiG","liveBrowserPreviewOverlayButton":"Chat-module_liveBrowserPreviewOverlayButton__o9SNO","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09","progressPanel":"Chat-module_progressPanel__9M8h9","progressPanelTitle":"Chat-module_progressPanelTitle__rBdoY","progressPanelSection":"Chat-module_progressPanelSection__F3xUF","progressPanelSectionLabel":"Chat-module_progressPanelSectionLabel__aTPgr","progressPanelSectionBody":"Chat-module_progressPanelSectionBody__Z7zX0","progressPanelList":"Chat-module_progressPanelList__PHFeP","progressPanelListItem":"Chat-module_progressPanelListItem__7v9jN","progressPanelListBullet":"Chat-module_progressPanelListBullet__Tzvi7","progressPanelItemSpinner":"Chat-module_progressPanelItemSpinner__oJ6Az","progressPanelSpinner":"Chat-module_progressPanelSpinner__pzxP2","progressPanelItemCompleted":"Chat-module_progressPanelItemCompleted__7bJhG","progressPanelItemText":"Chat-module_progressPanelItemText__tZPIs"};
|
|
23335
|
+
var css_248z$7 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:170px;--chat-message-avatar-gap:14px;--chat-message-avatar-size:42px;--chat-message-max-width:min(72%,680px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-bubble-radius:24px;--chat-bubble-shadow:0 12px 34px rgba(15,23,42,.16);--chat-bubble-shadow-hover:0 18px 42px rgba(15,23,42,.2);--chat-bubble-border-color:hsla(0,0%,100%,.34);--chat-bubble-font-size:15px;--chat-bubble-line-height:1.62;--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);--chat-message-meta-color:rgba(71,85,105,.85);--chat-message-lifecycle-badge-background:rgba(148,163,184,.16);--chat-message-lifecycle-badge-color:#475569;--chat-participant-label-color:rgba(71,85,105,.82);--chat-message-control-background:hsla(0,0%,100%,.28);--chat-message-control-border-color:hsla(0,0%,100%,.46);--chat-message-control-hover-background:hsla(0,0%,100%,.36);--chat-message-control-hover-border-color:hsla(0,0%,100%,.76);--chat-message-control-color:#111;--chat-message-control-shadow:0 2px 8px rgba(15,23,42,.16);--chat-message-control-hover-shadow:0 5px 14px rgba(15,23,42,.22);--chat-message-control-spinner-border-color:rgba(0,0,0,.3);--chat-message-control-spinner-accent-color:#111;--chat-article-control-background:#f8fafc;--chat-article-control-border-color:rgba(148,163,184,.65);--chat-article-control-hover-background:#fff;--chat-article-control-hover-border-color:rgba(100,116,139,.82);--chat-article-control-hover-shadow:0 2px 8px rgba(15,23,42,.12);--chat-article-rating-background:rgba(248,250,252,.9);--chat-article-rating-border-color:rgba(148,163,184,.5);--chat-article-rating-hover-background:rgba(241,245,249,.94);--chat-article-rating-hover-border-color:rgba(100,116,139,.62);--chat-article-rating-shadow:none;--chat-input-border-color:rgba(148,163,184,.14);--chat-input-backdrop:linear-gradient(180deg,rgba(248,250,252,0),rgba(248,250,252,.9) 44%,rgba(248,250,252,.96));--chat-full-page-input-backdrop:linear-gradient(180deg,hsla(0,0%,100%,.02),hsla(0,0%,100%,.86) 60%,hsla(0,0%,100%,.95));--chat-input-drag-over-backdrop:linear-gradient(180deg,rgba(56,189,248,.04),rgba(14,165,233,.13));--chat-input-container-background:linear-gradient(150deg,hsla(0,0%,100%,.98),rgba(248,250,252,.94));--chat-input-container-border-color:rgba(148,163,184,.3);--chat-input-container-shadow:0 14px 34px rgba(15,23,42,.12),inset 0 1px 0 hsla(0,0%,100%,.9);--chat-input-text-color:#0f172a;--chat-input-placeholder-color:#8b9bb1;--chat-input-action-color:#64748b;--chat-input-action-hover-background:#f1f5f9;--chat-input-action-hover-color:#0f172a;--chat-file-preview-background:hsla(0,0%,49%,.1);--chat-file-preview-border-color:hsla(0,0%,49%,.2);--chat-file-preview-hover-background:hsla(0,0%,49%,.15);--chat-file-preview-hover-border-color:hsla(0,0%,49%,.3);--chat-file-name-color:#000;--chat-file-size-color:#6b7280;--chat-dictation-panel-background:hsla(0,0%,100%,.9);--chat-dictation-panel-border-color:rgba(148,163,184,.35);--chat-dictation-panel-color:#0f172a;--chat-dictation-title-color:#475569;--chat-dictation-toggle-background:#f8fafc;--chat-dictation-toggle-color:#334155;--chat-dictation-transcript-background:rgba(239,246,255,.9);--chat-dictation-transcript-color:#0c4a6e;--chat-dictation-settings-color:#334155;--chat-dictation-fallback-color:#475569;--chat-reply-composer-background:hsla(0,0%,100%,.92);--chat-reply-composer-border-color:rgba(148,163,184,.3);--chat-reply-composer-shadow:0 10px 24px rgba(15,23,42,.08);--chat-reply-dismiss-background:rgba(148,163,184,.14);--chat-reply-dismiss-hover-background:rgba(148,163,184,.24);--chat-reply-dismiss-color:#475569;--chat-reply-dismiss-hover-color:#0f172a;--chat-speech-status-background:hsla(0,0%,100%,.95);--chat-speech-status-border-color:rgba(15,23,42,.15);--chat-speech-status-color:#0f172a;--chat-speech-status-shadow:0 12px 28px rgba(15,23,42,.18);--chat-speech-status-dot-background:#64748b;--chat-dictation-action-background:#f8fafc;--chat-dictation-action-border-color:rgba(148,163,184,.35);--chat-dictation-action-color:#0f172a;--chat-dictation-correction-label-color:#334155;--chat-dictation-correction-textarea-background:#fff;--chat-dictation-correction-textarea-color:#0f172a;--chat-dictation-correction-textarea-border-color:rgba(148,163,184,.35);display:flex;flex-direction:column;font-family:var(\n --chat-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n ),\"OpenMojiColor\",\"OpenMojiBlack\";height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_Chat__j2eE5[data-chat-theme=dark]{--chat-bubble-shadow:0 14px 34px rgba(2,6,23,.38);--chat-bubble-shadow-hover:0 18px 42px rgba(2,6,23,.48);--chat-bubble-border-color:rgba(148,163,184,.2);--chat-message-meta-color:rgba(148,163,184,.84);--chat-message-lifecycle-badge-background:rgba(148,163,184,.14);--chat-message-lifecycle-badge-color:#cbd5e1;--chat-participant-label-color:rgba(203,213,225,.76);--chat-message-control-background:rgba(15,23,42,.78);--chat-message-control-border-color:rgba(148,163,184,.4);--chat-message-control-hover-background:rgba(30,41,59,.96);--chat-message-control-hover-border-color:rgba(148,163,184,.72);--chat-message-control-color:#e2e8f0;--chat-message-control-shadow:0 10px 24px rgba(2,6,23,.34);--chat-message-control-hover-shadow:0 12px 28px rgba(2,6,23,.42);--chat-message-control-spinner-border-color:rgba(226,232,240,.3);--chat-message-control-spinner-accent-color:#e2e8f0;--chat-article-control-background:rgba(15,23,42,.86);--chat-article-control-border-color:rgba(71,85,105,.95);--chat-article-control-hover-background:rgba(30,41,59,.98);--chat-article-control-hover-border-color:rgba(148,163,184,.72);--chat-article-control-hover-shadow:0 12px 26px rgba(2,6,23,.32);--chat-article-rating-background:rgba(15,23,42,.86);--chat-article-rating-border-color:rgba(71,85,105,.95);--chat-article-rating-hover-background:rgba(30,41,59,.98);--chat-article-rating-hover-border-color:rgba(148,163,184,.72);--chat-article-rating-shadow:0 12px 26px rgba(2,6,23,.32);--chat-input-border-color:rgba(51,65,85,.78);--chat-input-backdrop:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.82) 48%,rgba(2,6,23,.96));--chat-full-page-input-backdrop:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.88) 58%,rgba(2,6,23,.98));--chat-input-drag-over-backdrop:linear-gradient(180deg,rgba(14,165,233,.08),rgba(8,47,73,.5));--chat-input-container-background:linear-gradient(150deg,rgba(15,23,42,.96),rgba(15,23,42,.9));--chat-input-container-border-color:rgba(71,85,105,.88);--chat-input-container-shadow:0 20px 44px rgba(2,6,23,.42),inset 0 1px 0 rgba(148,163,184,.1);--chat-input-text-color:#e2e8f0;--chat-input-placeholder-color:#94a3b8;--chat-input-action-color:#cbd5e1;--chat-input-action-hover-background:rgba(51,65,85,.78);--chat-input-action-hover-color:#f8fafc;--chat-file-preview-background:rgba(15,23,42,.78);--chat-file-preview-border-color:rgba(71,85,105,.72);--chat-file-preview-hover-background:rgba(30,41,59,.86);--chat-file-preview-hover-border-color:rgba(148,163,184,.42);--chat-file-name-color:#e2e8f0;--chat-file-size-color:#94a3b8;--chat-dictation-panel-background:rgba(15,23,42,.94);--chat-dictation-panel-border-color:rgba(71,85,105,.8);--chat-dictation-panel-color:#e2e8f0;--chat-dictation-title-color:#cbd5e1;--chat-dictation-toggle-background:rgba(30,41,59,.92);--chat-dictation-toggle-color:#e2e8f0;--chat-dictation-transcript-background:rgba(8,47,73,.64);--chat-dictation-transcript-color:#bae6fd;--chat-dictation-settings-color:#cbd5e1;--chat-dictation-fallback-color:#94a3b8;--chat-reply-composer-background:rgba(15,23,42,.94);--chat-reply-composer-border-color:rgba(71,85,105,.8);--chat-reply-composer-shadow:0 14px 28px rgba(2,6,23,.32);--chat-reply-dismiss-background:rgba(51,65,85,.76);--chat-reply-dismiss-hover-background:rgba(71,85,105,.9);--chat-reply-dismiss-color:#cbd5e1;--chat-reply-dismiss-hover-color:#f8fafc;--chat-speech-status-background:rgba(15,23,42,.96);--chat-speech-status-border-color:rgba(71,85,105,.8);--chat-speech-status-color:#e2e8f0;--chat-speech-status-shadow:0 16px 34px rgba(2,6,23,.42);--chat-speech-status-dot-background:#94a3b8;--chat-dictation-action-background:rgba(30,41,59,.92);--chat-dictation-action-border-color:rgba(71,85,105,.78);--chat-dictation-action-color:#e2e8f0;--chat-dictation-correction-label-color:#cbd5e1;--chat-dictation-correction-textarea-background:rgba(8,15,28,.98);--chat-dictation-correction-textarea-color:#e2e8f0;--chat-dictation-correction-textarea-border-color:rgba(71,85,105,.78);color:#e2e8f0}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-max-width:54rem;--chat-article-layout-padding-inline:clamp(16px,4vw,40px)}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:🟦;min-width:0;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:28px 24px 18px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_articleModeChatMessages__ufofT{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ{margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{justify-content:flex-start}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:7px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.55)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:24px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{align-items:stretch;column-gap:0;justify-content:center;margin-bottom:28px;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{align-items:stretch;margin:0 auto;max-width:min(100%,860px);width:min(100%,860px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm.Chat-module_articleModeAgentAvatar__UCKDX{display:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:var(--chat-message-meta-color);display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;line-height:1.4;margin:6px 8px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageMeta__eqCRu{margin-left:0;margin-right:0}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:var(--chat-message-lifecycle-badge-background);border-radius:999px;color:var(--chat-message-lifecycle-badge-color);display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageReplyButton__S5hXM{align-items:center;background:transparent;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:5px;opacity:.88;padding:0;transition:opacity .18s ease,color .18s ease,transform .18s ease}.Chat-module_messageReplyButton__S5hXM:focus,.Chat-module_messageReplyButton__S5hXM:hover{color:#0f172a;opacity:1;transform:translateY(-.5px)}.Chat-module_messageReplyButtonIcon__2Nk3i{height:13px;width:13px}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:var(--chat-participant-label-color);font-size:11.5px;font-weight:600;letter-spacing:.07em;margin:0 0 7px;text-transform:uppercase}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{display:none}.Chat-module_citationFootnotes__LAWdh,.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,49%,.28);border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_citationFootnotes__LAWdh{align-items:flex-start;flex-direction:column}.Chat-module_citationFootnoteItem__JXTAX{align-items:center;display:inline-flex;gap:8px;min-height:32px}.Chat-module_citationFootnoteNumber__CMmm9{color:color-mix(in srgb,var(--message-text-color,#0f172a) 78%,transparent);font-size:.84rem;font-weight:700;line-height:1;min-width:1.25rem}.Chat-module_toolCallChip__koN18{align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.78) 26%);border:1px solid hsla(0,0%,49%,.3);border:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);border-radius:999px;box-shadow:0 2px 8px rgba(15,23,42,.12);color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:8px;padding:5px 11px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.86) 36%);box-shadow:0 4px 12px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:10px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:not(.Chat-module_isMe__nBtaV) .Chat-module_messageText__XgNyQ{border-bottom-left-radius:10px}.Chat-module_ratingStar__rRfqC{color:var(--chat-feedback-star-color,var(--star-inactive-color,#ccc));cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_feedbackStar__tC7XH{align-items:center;color:var(--chat-feedback-star-color,#ccc);display:inline-flex;justify-content:center;line-height:1}.Chat-module_feedbackStarIcon__BuPen{color:var(--chat-feedback-star-color,currentColor)!important;display:block}.Chat-module_feedbackStarIcon__BuPen,.Chat-module_feedbackStarIcon__BuPen *{fill:var(--chat-feedback-star-fill,none)!important;stroke:var(--chat-feedback-star-color,currentColor)!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-md-heading-font-family:var(\n --font-barlow-condensed,\"Barlow Condensed\",var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n );--chat-md-body-font-family:inherit;--chat-md-text-color:var(--message-text-color,#0f172a);--chat-md-link-color:#2563eb;--chat-md-muted-color:var(--message-text-color,#0f172a);--chat-md-inline-code-bg:rgba(15,23,42,.16);--chat-md-inline-code-border:rgba(15,23,42,.2);--chat-md-inline-code-color:var(--message-text-color,#0f172a);--chat-md-blockquote-bg:hsla(0,0%,100%,.2);--chat-md-blockquote-border:rgba(56,189,248,.52);--chat-md-table-bg:hsla(0,0%,100%,.22);--chat-md-table-row-alt-bg:hsla(0,0%,100%,.12);--chat-md-table-head-bg:hsla(0,0%,100%,.3);--chat-md-table-border:hsla(0,0%,100%,.36);--chat-md-citation-bg:hsla(0,0%,100%,.25);--chat-md-citation-color:var(--message-text-color,#0f172a);backdrop-filter:blur(14px);background-color:var(--message-bg-color);border:1px solid var(--chat-bubble-border-color);border-radius:var(--chat-bubble-radius);box-shadow:var(--chat-bubble-shadow),inset 0 1px 0 hsla(0,0%,100%,.16);color:var(--message-text-color);font-family:inherit;font-size:var(--chat-bubble-font-size);hyphens:auto;letter-spacing:.0025em;line-height:var(--chat-bubble-line-height);margin-bottom:6px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);overflow-wrap:anywhere;padding:16px 20px;position:relative;text-align:left;transform:translateX(var(--chat-message-swipe-offset,0));transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{--chat-md-link-color:#1d4ed8;--chat-md-inline-code-bg:rgba(15,23,42,.08);--chat-md-inline-code-border:rgba(15,23,42,.16);--chat-md-blockquote-bg:rgba(148,163,184,.12);--chat-md-table-bg:rgba(248,250,252,.9);--chat-md-table-row-alt-bg:rgba(226,232,240,.45);--chat-md-table-head-bg:rgba(241,245,249,.92);--chat-md-table-border:rgba(148,163,184,.45);--chat-md-citation-bg:rgba(191,219,254,.24);backdrop-filter:none;background:transparent!important;border:0;border-radius:0;box-shadow:none;font-size:15.5px;line-height:1.75;margin-bottom:8px;min-width:0;padding:2px 0}.Chat-module_replyEnabledMessageText__-SV9f{touch-action:pan-y}.Chat-module_replySwipeActive__dhAqt{box-shadow:var(--chat-bubble-shadow-hover),0 0 0 1px rgba(56,189,248,.22),inset 0 1px 0 hsla(0,0%,100%,.16)}.Chat-module_replySwipeIndicator__u92JU{color:rgba(15,23,42,.45);left:-24px;opacity:.22;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .18s ease,transform .18s ease}.Chat-module_replySwipeIndicatorRight__3CoAW{left:auto;right:-24px}.Chat-module_replySwipeIndicatorActive__m9gwU{opacity:.9;transform:translateY(-50%) scale(1.05)}.Chat-module_replySwipeIndicatorIcon__0K1SX{height:16px;width:16px}.Chat-module_replyPreview__Lt-Bg{align-items:flex-start;background:hsla(0,0%,100%,.16);border:1px solid hsla(0,0%,100%,.26);border-radius:14px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);display:flex;gap:10px;margin-bottom:12px;min-width:0;padding:10px 12px}.Chat-module_replyBubblePreview__DNe3r{opacity:.9}.Chat-module_replyComposerPreview__80Wdf{background:var(--chat-reply-composer-background);border-color:var(--chat-reply-composer-border-color);box-shadow:var(--chat-reply-composer-shadow);margin-bottom:2px}.Chat-module_replyPreviewAccent__Uo3pe{align-self:stretch;background:#0ea5e9;background:color-mix(in srgb,var(--brand-color,#0ea5e9) 84%,#fff 16%);border-radius:999px;flex-shrink:0;width:4px}.Chat-module_replyPreviewBody__reKG-{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.Chat-module_replyPreviewHeading__IeegE{font-size:11px;line-height:1.3;opacity:.82}.Chat-module_replyPreviewLabel__J-BrF{font-weight:600}.Chat-module_replyPreviewSender__z6SYu{font-weight:700}.Chat-module_replyPreviewText__cY-Hc{font-size:12.5px;line-height:1.35;min-width:0;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_replyPreviewDismissButton__-L9MF{align-items:center;background:var(--chat-reply-dismiss-background);border:none;border-radius:999px;color:var(--chat-reply-dismiss-color);cursor:pointer;display:inline-flex;flex-shrink:0;height:28px;justify-content:center;transition:background .18s ease,color .18s ease,transform .18s ease;width:28px}.Chat-module_replyPreviewDismissButton__-L9MF:focus,.Chat-module_replyPreviewDismissButton__-L9MF:hover{background:var(--chat-reply-dismiss-hover-background);color:var(--chat-reply-dismiss-hover-color);transform:scale(1.02)}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-bubble-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 72%,hsla(0,0%,100%,.46) 28%);--chat-md-link-color:color-mix(in srgb,var(--message-text-color,#0f172a) 72%,#7dd3fc 28%);--chat-md-muted-color:color-mix(in srgb,var(--message-text-color,#0f172a) 84%,transparent);--chat-md-inline-code-bg:color-mix(in srgb,var(--message-bg-color,#fff) 65%,rgba(15,23,42,.2) 35%);--chat-md-inline-code-border:color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);--chat-md-blockquote-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.86) 22%);--chat-md-blockquote-border:color-mix(in srgb,var(--message-text-color,#0f172a) 34%,#7dd3fc 66%);--chat-md-table-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.9) 22%);--chat-md-table-row-alt-bg:color-mix(in srgb,var(--message-bg-color,#fff) 70%,hsla(0,0%,100%,.82) 30%);--chat-md-table-head-bg:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.94) 36%);--chat-md-table-border:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);--chat-md-citation-bg:color-mix(in srgb,var(--message-bg-color,#fff) 55%,hsla(0,0%,100%,.94) 45%);background:linear-gradient(158deg,color-mix(in srgb,var(--message-bg-color,#fff) 86%,hsla(0,0%,100%,.3) 14%),color-mix(in srgb,var(--message-bg-color,#fff) 95%,rgba(2,6,23,.08) 5%))}}.Chat-module_copyButtonContainer__Rij0U{opacity:0;pointer-events:none;position:absolute;right:12px;top:10px;transform:translateY(-2px);transition:opacity .18s ease,transform .18s ease;z-index:3}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.Chat-module_articleModeMessageActions__h2qaG{align-items:center;border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:flex-start;margin-top:14px;padding-top:12px}.Chat-module_articleModeMessageControls__hncCw{opacity:1;pointer-events:auto;position:static;right:auto;top:auto;transform:none;z-index:auto}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:7px;pointer-events:auto}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL{background:var(--chat-article-control-background);border-color:var(--chat-article-control-border-color);box-shadow:none;color:var(--chat-message-control-color)}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:focus,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:hover,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL:hover:not(:disabled){background:var(--chat-article-control-hover-background);border-color:var(--chat-article-control-hover-border-color);box-shadow:var(--chat-article-control-hover-shadow)}.Chat-module_copyButton__DcxT5{backdrop-filter:blur(8px);border:1px solid var(--chat-message-control-border-color);box-shadow:var(--chat-message-control-shadow);display:flex;opacity:1;padding:4px 7px;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_copyButton__DcxT5,.Chat-module_playButton__ZigYL{align-items:center;background:var(--chat-message-control-background);border-radius:10px;color:var(--chat-message-control-color);cursor:pointer;position:relative}.Chat-module_playButton__ZigYL{border:1px solid var(--chat-message-control-border-color);display:inline-flex;height:34px;justify-content:center;padding:0;transition:all .15s ease;width:34px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid var(--chat-message-control-spinner-border-color);border-radius:50%;border-top-color:var(--chat-message-control-spinner-accent-color);height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:var(--chat-message-control-hover-background);border-color:var(--chat-message-control-hover-border-color);box-shadow:var(--chat-message-control-hover-shadow)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{background:var(--chat-message-control-hover-background);border:1px solid var(--chat-message-control-hover-border-color);box-shadow:var(--chat-message-control-hover-shadow);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_copyButton__DcxT5 svg rect{fill:#cbd5e1;stroke:#94a3b8}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:var(--chat-bubble-shadow-hover),inset 0 1px 0 hsla(0,0%,100%,.16);transform:translateX(var(--chat-message-swipe-offset,0)) translateY(-1.5px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP:hover{box-shadow:none;transform:none}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.28);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 12%,transparent);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.8) 26%);border:1px solid hsla(0,0%,49%,.3);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 16%,transparent);border-radius:999px;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:12.5px;gap:6px;line-height:inherit;max-width:200px;padding:7px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachmentWithRemove__n2-O6{gap:0;overflow:hidden;padding:0}.Chat-module_attachmentMainAction__Onkl3{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:6px;line-height:inherit;min-width:0;padding:7px 8px 7px 12px;text-decoration:none}.Chat-module_attachmentRemoveButton__dC5ne{align-items:center;background:hsla(0,0%,100%,.24);border:0;border-radius:999px;color:inherit;cursor:pointer;display:inline-flex;flex:0 0 auto;height:22px;justify-content:center;margin-right:5px;opacity:.85;transition:background .2s ease,opacity .2s ease,transform .2s ease;width:22px}.Chat-module_attachmentRemoveButton__dC5ne:hover{background:rgba(239,68,68,.18);opacity:1;transform:scale(1.04)}.Chat-module_attachmentRemoveButton__dC5ne svg{height:12px;width:12px}.Chat-module_attachmentWithRemove__n2-O6 .Chat-module_attachmentName__aMx56{min-width:0}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 62%,hsla(0,0%,100%,.9) 38%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 24%,transparent);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.36);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.2);background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border:1px solid hsla(0,0%,49%,.9);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);border-radius:999px;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;letter-spacing:.01em;padding:8px 15px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:hsla(0,0%,100%,.3);background:color-mix(in srgb,var(--message-bg-color,#fff) 66%,hsla(0,0%,100%,.9) 34%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 26%,#7dd3fc 74%);box-shadow:0 5px 14px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm{backdrop-filter:none;background:var(--chat-article-rating-background);border:1px solid var(--chat-article-rating-border-color);border-radius:999px;bottom:auto;min-width:0;opacity:1;padding:4px 8px;position:static;right:auto;transform:none;z-index:auto}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm:hover{background:var(--chat-article-rating-hover-background);border-color:var(--chat-article-rating-hover-border-color);box-shadow:var(--chat-article-rating-shadow);padding:4px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_feedbackIssueButton__9NrrF{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-family:OpenMojiBlack,Noto Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:16px;justify-content:center;line-height:1;padding:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(20px);background:var(--chat-input-backdrop);border-top:1px solid var(--chat-input-border-color);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:20px 24px calc(20px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_articleModeChatInput__zBTV4{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatInput__zBTV4>:not(.Chat-module_speechStatusBubble__qBBWI):not(.Chat-module_dragOverlay__SEGoS){margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{background:var(--chat-full-page-input-backdrop)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:var(--chat-input-drag-over-backdrop)}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreviewContainer__R70hm.Chat-module_attachments__m1Fts{--message-bg-color:var(--input-bg-color);--message-text-color:var(--input-text-color);border-top:0;color:var(--input-text-color);margin-top:0;padding-top:0}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:var(--chat-file-preview-background);border:1px solid var(--chat-file-preview-border-color);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:var(--chat-file-preview-hover-background);border-color:var(--chat-file-preview-hover-border-color)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:var(--chat-file-name-color);font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:var(--chat-file-size-color);font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:var(--chat-input-container-background);border:1px solid var(--chat-input-container-border-color);border-radius:26px;box-shadow:var(--chat-input-container-shadow);display:flex;gap:10px;min-width:0;padding:9px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color,#0ea5e9);border-color:color-mix(in srgb,var(--brand-color,#0ea5e9) 58%,rgba(15,23,42,.2) 42%);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px rgba(14,165,233,.16);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px color-mix(in srgb,var(--brand-color,#0ea5e9) 16%,transparent);transform:translateY(-1px)}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_inputContainer__bPt99:focus-within{border-color:rgba(125,211,252,.6);box-shadow:0 20px 44px rgba(2,6,23,.48),0 0 0 4px rgba(14,165,233,.18)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:var(--chat-input-placeholder-color);opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--chat-input-action-color);cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:var(--chat-input-action-hover-background);color:var(--chat-input-action-hover-color)}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:var(--chat-input-action-color);cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:var(--chat-input-action-hover-background);color:var(--chat-input-action-hover-color)}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:var(--chat-speech-status-background);border-radius:999px;border-style:solid;border-width:1px;border:1px solid var(--chat-speech-status-border-color);bottom:86px;box-shadow:var(--chat-speech-status-shadow);color:var(--chat-speech-status-color);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:var(--chat-speech-status-dot-background);border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleRecording__faJs2{background:rgba(127,29,29,.72);border-color:hsla(0,91%,71%,.44);color:#fecaca}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(8,47,73,.74);border-color:rgba(125,211,252,.44);color:#bae6fd}.Chat-module_Chat__j2eE5[data-chat-theme=dark] .Chat-module_speechStatusBubbleError__Nd-Aj{background:rgba(127,29,29,.82);border-color:hsla(0,91%,71%,.5);color:#fecaca}.Chat-module_dictationPanel__kzbyG{background:var(--chat-dictation-panel-background);border:1px solid var(--chat-dictation-panel-border-color);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:var(--chat-dictation-panel-color);display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:var(--chat-dictation-title-color);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:var(--chat-dictation-toggle-background);border:1px solid var(--chat-dictation-panel-border-color);border-radius:10px;color:var(--chat-dictation-toggle-color);cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:var(--chat-dictation-transcript-background);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:var(--chat-dictation-transcript-color);cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:var(--chat-dictation-action-background);border:1px solid var(--chat-dictation-action-border-color);border-radius:10px;color:var(--chat-dictation-action-color);cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:var(--chat-dictation-correction-label-color);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:var(--chat-dictation-correction-textarea-background);border:1px solid var(--chat-dictation-correction-textarea-border-color);border-radius:10px;color:var(--chat-dictation-correction-textarea-color);font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:var(--chat-dictation-settings-color);display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:var(--chat-dictation-fallback-color);font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:var(--chat-input-text-color);flex:1;font-family:inherit;font-size:var(--chat-input-font-size);font-weight:500;height:var(--chat-input-textarea-height);letter-spacing:.002em;line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:var(--chat-input-placeholder-color);opacity:.9}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;background-color:rgba(15,23,42,.76);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{opacity:0}to{opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_ratingModal__XVKYm[data-chat-modal=citation-browser],.Chat-module_ratingModal__XVKYm[data-chat-modal=image-attachment]{box-sizing:border-box;padding:24px}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_citationBrowserModal__jYU4c{background:#f8fafc;display:flex;flex-direction:column;margin:0;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);max-width:800px;overflow:hidden;padding:0;width:min(90vw,800px)}.Chat-module_citationBrowserModalBody__lvTWb{display:flex;flex:1 1 auto;min-height:0}.Chat-module_imageAttachmentModal__Ef6L5{display:flex;flex-direction:column;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);max-width:1040px;overflow:hidden;padding:0;position:relative;width:min(92vw,1040px)}.Chat-module_imageAttachmentModalHeader__onK3Z{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex:0 0 auto;padding:20px 68px 14px 24px}.Chat-module_imageAttachmentModalTitle__AhuMt{color:#0f172a!important;font-size:16px!important;font-weight:600!important;line-height:1.35;margin:0!important;overflow-wrap:anywhere;text-align:left!important}.Chat-module_imageAttachmentModalPreview__gXDer{align-items:center;background:#0f172a;box-sizing:border-box;display:flex;flex:1 1 auto;justify-content:center;max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px);min-height:0;overflow:hidden;padding:16px}.Chat-module_imageAttachmentModalImage__t61oG{display:block;max-height:calc(100vh - 162px);max-height:calc(100dvh - 162px);max-width:100%;object-fit:contain}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_agentProjectStatus__870th{align-items:center;display:flex;font-size:15px;font-weight:600;gap:8px;margin:0 0 14px}.Chat-module_agentProjectStatusDot__vCMF3{background:currentColor;border-radius:999px;flex:none;height:9px;width:9px}.Chat-module_agentProjectStatusRunning__a4-Ud{color:#047857}.Chat-module_agentProjectStatusStopped__tcH0J{color:#64748b}.Chat-module_agentProjectLinks__KW0Wb{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.Chat-module_agentProjectLink__FmkLh{color:#1d4ed8;font-size:14px;font-weight:600;text-decoration:none;word-break:break-word}.Chat-module_agentProjectLink__FmkLh:hover{text-decoration:underline}.Chat-module_agentProjectChange__4Lyg8{background:#fefefe;padding:0 32px 8px}.Chat-module_agentProjectChangeSummary__qu418{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.Chat-module_agentProjectChangeCount__9xuW2{font-family:Consolas,Courier New,monospace;font-size:13px;font-weight:700}.Chat-module_agentProjectChangeCountAdded__pE41j{color:#047857}.Chat-module_agentProjectChangeCountRemoved__xa0-y{color:#b91c1c}.Chat-module_agentProjectCommit__QZ6dK{color:#64748b;font-family:Consolas,Courier New,monospace;font-size:12px}.Chat-module_agentProjectChangedFiles__yVStZ{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0 0 12px;max-height:160px;overflow-y:auto;padding:0}.Chat-module_agentProjectChangedFile__Xf46Y{align-items:baseline;display:flex;font-size:13px;gap:12px;justify-content:space-between}.Chat-module_agentProjectChangedFilePath__2nsAO{color:#0f172a;font-family:Consolas,Courier New,monospace;word-break:break-all}.Chat-module_agentProjectChangedFileCounts__rQbeL{font-family:Consolas,Courier New,monospace;font-size:12px;white-space:nowrap}.Chat-module_agentProjectDiff__FYtgG{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.Chat-module_agentProjectDiffCode__WsR6G{display:flex;flex-direction:column;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5;margin:0;max-height:320px;overflow:auto;padding:12px 0}.Chat-module_agentProjectDiffLine__hHaES{color:#334155;padding:0 12px;white-space:pre}.Chat-module_agentProjectDiffLineAdded__yOyL0{background:rgba(16,185,129,.14);color:#065f46}.Chat-module_agentProjectDiffLineRemoved__P97hq{background:rgba(239,68,68,.12);color:#991b1b}.Chat-module_agentProjectDiffLineHunk__cq-md{background:rgba(109,40,217,.08);color:#6d28d9}.Chat-module_agentProjectDiffLineMeta__j9MVq{color:#94a3b8}.Chat-module_agentProjectDiffTruncated__dUwJs{border-top:1px solid #e2e8f0;color:#64748b;font-size:12px;margin:0;padding:8px 12px}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_toolCallClockPanel__h4xZd{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.Chat-module_toolCallClockLabels__KJGxe{text-align:center}.Chat-module_toolCallClockPrimary__StLQ8{color:#0f172a;font-size:2em;font-weight:700}.Chat-module_toolCallClockSecondary__O4WaT{color:#475467}.Chat-module_toolCallClockMeta__aObb7{color:#667085;font-size:.9em;margin-top:5px}.Chat-module_timeoutToolSummary__kPPvu{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.Chat-module_timeoutToolPrimarySentence__pQfLn{color:#0f172a;font-size:15px;font-weight:600;line-height:1.5;margin:0}.Chat-module_timeoutToolSecondarySentence__iH5Uc{color:#475467;font-size:13px;line-height:1.5;margin:6px 0 0}.Chat-module_timeoutToolActionRow__occir{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_timeoutToolActionButton__8yz0R{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:border-color .2s ease,background-color .2s ease}.Chat-module_timeoutToolActionButton__8yz0R:hover{background:#f1f5f9;border-color:#94a3b8}.Chat-module_timeoutToolActionButton__8yz0R:disabled{cursor:default;opacity:.45}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationIframeLoading__y5VW9{align-items:center;color:#888;display:flex;font-size:.9em;height:60vh;justify-content:center;min-height:400px;width:100%}.Chat-module_citationScreenshotFallback__jxfJX{display:flex;flex-direction:column;position:relative;width:100%}.Chat-module_citationScreenshotImage__hXjC7{display:block;max-height:60vh;min-height:400px;object-fit:cover;object-position:top;width:100%}.Chat-module_citationScreenshotLink__NHvbE{background:#f0f0f0;border-top:1px solid #ddd;color:#333;display:block;font-size:.9em;font-weight:500;padding:10px 16px;text-align:center;text-decoration:none;transition:background .15s}.Chat-module_citationScreenshotLink__NHvbE:hover{background:#e0e0e0;text-decoration:underline}.Chat-module_liveBrowserPreview__D94Kt{background:#f8fafc;display:flex;flex-direction:column;min-height:0;width:100%}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreview__D94Kt{flex:1 1 auto;min-height:0}.Chat-module_liveBrowserPreview__D94Kt:fullscreen{background:#0f172a}.Chat-module_liveBrowserPreviewToolbar__nFgSV{align-items:center;background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;gap:4px;padding:6px 8px}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl{align-items:center;background:transparent;border:none;border-radius:6px;color:#334155;cursor:pointer;display:flex;flex:none;font-size:14px;height:28px;justify-content:center;line-height:1;min-width:28px;padding:0 4px;text-decoration:none;transition:background .15s}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl:hover:not(:disabled){background:#e2e8f0}.Chat-module_liveBrowserPreviewToolbarButton__R-ZXl:disabled{cursor:default;opacity:.35}.Chat-module_liveBrowserPreviewZoomLabel__PbrV1{font-size:11px;font-variant-numeric:tabular-nums}.Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0{margin-left:2px}.Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0 svg{height:14px;width:14px}.Chat-module_liveBrowserPreviewUrlForm__4DSda{flex:1;margin:0 4px;min-width:0}.Chat-module_liveBrowserPreviewUrlInput__AugUm{background:#fff;border:1px solid #e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;outline:none;padding:5px 12px;width:100%}.Chat-module_liveBrowserPreviewUrlInput__AugUm:focus{border-color:#94a3b8}.Chat-module_liveBrowserPreviewStreamArea__aIhQx{background:#f8f8f8;height:60vh;min-height:400px;outline:none;overflow:auto;position:relative;touch-action:none}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreviewStreamArea__aIhQx{height:min(60vh,640px);min-height:min(400px,calc(100dvh - 140px))}.Chat-module_liveBrowserPreviewStreamArea__aIhQx:focus-visible{box-shadow:inset 0 0 0 2px #94a3b8}.Chat-module_liveBrowserPreview__D94Kt:fullscreen .Chat-module_liveBrowserPreviewStreamArea__aIhQx{flex:1;height:auto;min-height:0}.Chat-module_liveBrowserPreviewStreamImage__bpTj3{background:#fff;display:block;position:relative;touch-action:none;user-select:none;width:100%}.Chat-module_liveBrowserPreviewConnecting__8Gn40{align-items:center;color:#64748b;display:flex;font-size:.9em;inset:0;justify-content:center;position:absolute}.Chat-module_liveBrowserPreviewOverlay__eheiG{align-items:center;background:rgba(15,23,42,.55);color:#fff;display:flex;flex-direction:column;gap:12px;inset:0;justify-content:center;position:absolute;text-align:center}.Chat-module_liveBrowserPreviewOverlayButton__o9SNO{background:#fff;border:none;border-radius:999px;color:#0f172a;cursor:pointer;font-weight:600;padding:8px 20px}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA,.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(18px)!important;background:linear-gradient(140deg,#0f8ef5,#0b6fd0 56%,#0d5fbb)!important;border:1px solid hsla(0,0%,100%,.24)!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(14,116,219,.28),inset 0 1px 0 hsla(0,0%,100%,.2)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-family:inherit!important;font-size:12.5px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;letter-spacing:.02em!important;line-height:1.2!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:11px 16px!important;position:relative!important;text-decoration:none!important;touch-action:manipulation!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before,.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.26) 48%,transparent);content:\"\";height:100%;left:-110%;position:absolute;top:0;transition:left .45s ease;width:75%}.Chat-module_chatButton__d9VgA:hover:before,.Chat-module_useTemplateButton__xcJNR:hover:before{left:140%}.Chat-module_chatButton__d9VgA:hover:not(:disabled),.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(140deg,#1a9aff,#0d7de8 56%,#1168c9)!important;box-shadow:0 14px 30px rgba(14,116,219,.34),inset 0 1px 0 hsla(0,0%,100%,.2)!important;transform:translateY(-1.5px)}.Chat-module_chatButton__d9VgA:active,.Chat-module_useTemplateButton__xcJNR:active{transform:translateY(0) scale(.985);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus,.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 10px 24px rgba(14,116,219,.32),0 0 0 3px rgba(56,189,248,.28),inset 0 1px 0 hsla(0,0%,100%,.22)!important;outline:none}.Chat-module_chatButton__d9VgA svg,.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.24));flex-shrink:0;height:16px;opacity:1;transition:transform .2s ease,filter .2s ease;width:16px}.Chat-module_chatButton__d9VgA:hover svg,.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));transform:scale(1.08) translateX(1px)}.Chat-module_chatButtonText__RkGB-{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-,.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-padding-inline:clamp(24px,6vw,36px)}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{margin-bottom:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{border-radius:0;font-size:15px;line-height:1.68;padding:2px 0}.Chat-module_articleModeMessageActions__h2qaG{gap:8px;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 20px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_ratingModalContent__CCdq7.Chat-module_imageAttachmentModal__Ef6L5{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden;padding:0}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModal__XVKYm[data-chat-modal=image-attachment]{align-items:center;padding:12px}.Chat-module_ratingModal__XVKYm[data-chat-modal=citation-browser]{align-items:center;padding:8px}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}.Chat-module_ratingModalContent__CCdq7.Chat-module_imageAttachmentModal__Ef6L5{border-radius:16px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;width:100%}.Chat-module_ratingModalContent__CCdq7.Chat-module_citationBrowserModal__jYU4c{border-radius:14px;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding:0;width:100%}.Chat-module_citationBrowserModal__jYU4c .Chat-module_liveBrowserPreviewStreamArea__aIhQx{height:58vh;min-height:min(320px,calc(100dvh - 112px))}.Chat-module_imageAttachmentModalHeader__onK3Z{padding:16px 56px 12px 16px}.Chat-module_imageAttachmentModalPreview__gXDer{max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);padding:12px}.Chat-module_imageAttachmentModalImage__t61oG{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px)}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}.Chat-module_progressPanel__9M8h9{background:linear-gradient(180deg,rgba(239,246,255,.94),rgba(219,234,254,.86));border:1px solid rgba(59,130,246,.24);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;margin-top:10px;padding:12px 13px}.Chat-module_progressPanelTitle__rBdoY{color:#0f172a;font-size:12px;font-weight:700;line-height:1.3}.Chat-module_progressPanelTitle__rBdoY p{margin:0}.Chat-module_progressPanelSection__F3xUF{display:flex;flex-direction:column;gap:4px}.Chat-module_progressPanelSectionLabel__aTPgr{color:#1d4ed8;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_progressPanelSectionBody__Z7zX0{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelSectionBody__Z7zX0 p{margin:0}.Chat-module_progressPanelList__PHFeP{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.Chat-module_progressPanelListItem__7v9jN{align-items:flex-start;display:grid;gap:8px;grid-template-columns:auto auto 1fr}.Chat-module_progressPanelListBullet__Tzvi7{color:#2563eb;font-size:14px;line-height:1.2;margin-top:2px}.Chat-module_progressPanelItemSpinner__oJ6Az{animation:Chat-module_progressPanelSpinner__pzxP2 .75s linear infinite;border:2px solid rgba(37,99,235,.26);border-radius:9999px;border-top-color:#2563eb;height:11px;margin-top:3px;width:11px}.Chat-module_progressPanelItemCompleted__7bJhG{align-items:center;background:rgba(34,197,94,.16);border-radius:9999px;color:#15803d;display:inline-flex;font-size:9px;font-weight:700;height:11px;justify-content:center;line-height:1;margin-top:2px;width:11px}.Chat-module_progressPanelItemText__tZPIs{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelItemText__tZPIs p{margin:0}@keyframes Chat-module_progressPanelSpinner__pzxP2{to{transform:rotate(1turn)}}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,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Q0FNbkIsOEJBQW1DLENBRG5DLG9CQUFxQixDQUVyQixhQUFjLENBUmQsbUJBQW9CLENBU3BCLGFBQWMsQ0FFZCxlQUFnQixDQVBoQixXQUFZLENBRlosc0JBQXVCLENBUXZCLGFBQWMsQ0FMZCxjQUFlLENBRmYsVUFTSixDQUVBLDBDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZ0JBQ0osQ0FFQSw0Q0FDSSxRQUNKLENBRUEsbURBQ0ksR0FDSSx1QkFDSixDQUNKLENBRUEsaURBQ0ksR0FDSSx1QkFDSixDQUNKIiwiZmlsZSI6IkNoYXQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlCbGFjayc7XG4gICAgc3JjOiB1cmwoJy9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyAvKiA8LSBUT0RPOiBb8J+QseKAjfCfmoBdIER5bmFtaWNhbGx5IGxvYWQgZnJvbSAvc2VydmVycy50cyAqL1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlDb2xvcic7XG4gICAgc3JjOiB1cmwoJy9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbi5jb3BpZWRUb0NsaXBib2FyZE1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMycHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4uQ2hhdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBmb250LWZhbWlseTogdmFyKFxuICAgICAgICAgICAgLS1jaGF0LWZvbnQtZmFtaWx5LFxuICAgICAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZilcbiAgICAgICAgKSxcbiAgICAgICAgJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjayc7XG5cbiAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDE3MHB4O1xuICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDE0cHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDQycHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgIDcyJSxcbiAgICAgICAgNjgwcHgsXG4gICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgKTtcbiAgICAtLWNoYXQtYnViYmxlLXJhZGl1czogMjRweDtcbiAgICAtLWNoYXQtYnViYmxlLXNoYWRvdzogMCAxMnB4IDM0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE2KTtcbiAgICAtLWNoYXQtYnViYmxlLXNoYWRvdy1ob3ZlcjogMCAxOHB4IDQycHggcmdiYSgxNSwgMjMsIDQyLCAwLjIpO1xuICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpO1xuICAgIC0tY2hhdC1idWJibGUtZm9udC1zaXplOiAxNXB4O1xuICAgIC0tY2hhdC1idWJibGUtbGluZS1oZWlnaHQ6IDEuNjI7XG4gICAgLS1jaGF0LWlucHV0LXZpc2libGUtbGluZXM6IDM7XG4gICAgLS1jaGF0LWlucHV0LWZvbnQtc2l6ZTogMTVweDtcbiAgICAtLWNoYXQtaW5wdXQtbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy15OiAxMHB4O1xuICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDEycHg7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplOiA0MHB4O1xuICAgIC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgIHZhcigtLWNoYXQtaW5wdXQtdmlzaWJsZS1saW5lcykgKiB2YXIoLS1jaGF0LWlucHV0LWZvbnQtc2l6ZSkgKiB2YXIoLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0KSArXG4gICAgICAgICAgICAoMiAqIHZhcigtLWNoYXQtaW5wdXQtcGFkZGluZy15KSlcbiAgICApO1xuICAgIC0tY2hhdC1tZXNzYWdlLW1ldGEtY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuODUpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWxpZmVjeWNsZS1iYWRnZS1iYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWxpZmVjeWNsZS1iYWRnZS1jb2xvcjogIzQ3NTU2OTtcbiAgICAtLWNoYXQtcGFydGljaXBhbnQtbGFiZWwtY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuODIpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1jb2xvcjogIzExMTExMTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1zaGFkb3c6IDAgNXB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjIyKTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNwaW5uZXItYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1zcGlubmVyLWFjY2VudC1jb2xvcjogIzExMTExMTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC42NSk7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1iYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDEwMCwgMTE2LCAxMzksIDAuODIpO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItc2hhZG93OiAwIDJweCA4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYmFja2dyb3VuZDogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYmFja2dyb3VuZDogcmdiYSgyNDEsIDI0NSwgMjQ5LCAwLjk0KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKDEwMCwgMTE2LCAxMzksIDAuNjIpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1zaGFkb3c6IG5vbmU7XG4gICAgLS1jaGF0LWlucHV0LWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE0KTtcbiAgICAtLWNoYXQtaW5wdXQtYmFja2Ryb3A6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICByZ2JhKDI0OCwgMjUwLCAyNTIsIDApIDAlLFxuICAgICAgICByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOSkgNDQlLFxuICAgICAgICByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpIDEwMCVcbiAgICApO1xuICAgIC0tY2hhdC1mdWxsLXBhZ2UtaW5wdXQtYmFja2Ryb3A6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIDAlLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDYwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAxMDAlXG4gICAgKTtcbiAgICAtLWNoYXQtaW5wdXQtZHJhZy1vdmVyLWJhY2tkcm9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMDQpIDAlLFxuICAgICAgICByZ2JhKDE0LCAxNjUsIDIzMywgMC4xMykgMTAwJVxuICAgICk7XG4gICAgLS1jaGF0LWlucHV0LWNvbnRhaW5lci1iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE1MGRlZyxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSAwJSxcbiAgICAgICAgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk0KSAxMDAlXG4gICAgKTtcbiAgICAtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjMpO1xuICAgIC0tY2hhdC1pbnB1dC1jb250YWluZXItc2hhZG93OiAwIDE0cHggMzRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAtLWNoYXQtaW5wdXQtdGV4dC1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICM4YjliYjE7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1jb2xvcjogIzY0NzQ4YjtcbiAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIC0tY2hhdC1maWxlLXByZXZpZXctaG92ZXItYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjE1KTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIC0tY2hhdC1maWxlLW5hbWUtY29sb3I6ICMwMDAwMDA7XG4gICAgLS1jaGF0LWZpbGUtc2l6ZS1jb2xvcjogIzZiNzI4MDtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXBhbmVsLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXBhbmVsLWNvbG9yOiAjMGYxNzJhO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdGl0bGUtY29sb3I6ICM0NzU1Njk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10b2dnbGUtYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRvZ2dsZS1jb2xvcjogIzMzNDE1NTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRyYW5zY3JpcHQtYmFja2dyb3VuZDogcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdHJhbnNjcmlwdC1jb2xvcjogIzBjNGE2ZTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXNldHRpbmdzLWNvbG9yOiAjMzM0MTU1O1xuICAgIC0tY2hhdC1kaWN0YXRpb24tZmFsbGJhY2stY29sb3I6ICM0NzU1Njk7XG4gICAgLS1jaGF0LXJlcGx5LWNvbXBvc2VyLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgLS1jaGF0LXJlcGx5LWNvbXBvc2VyLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjMpO1xuICAgIC0tY2hhdC1yZXBseS1jb21wb3Nlci1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgLS1jaGF0LXJlcGx5LWRpc21pc3MtYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE0KTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjQpO1xuICAgIC0tY2hhdC1yZXBseS1kaXNtaXNzLWNvbG9yOiAjNDc1NTY5O1xuICAgIC0tY2hhdC1yZXBseS1kaXNtaXNzLWhvdmVyLWNvbG9yOiAjMGYxNzJhO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgLS1jaGF0LXNwZWVjaC1zdGF0dXMtYm9yZGVyLWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuMTUpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWNvbG9yOiAjMGYxNzJhO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE4KTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1kb3QtYmFja2dyb3VuZDogIzY0NzQ4YjtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1iYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1jb2xvcjogIzBmMTcyYTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tbGFiZWwtY29sb3I6ICMzMzQxNTU7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWNvbG9yOiAjMGYxNzJhO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG59XG5cbi5DaGF0W2RhdGEtY2hhdC10aGVtZT0nZGFyayddIHtcbiAgICBjb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtYnViYmxlLXNoYWRvdzogMCAxNHB4IDM0cHggcmdiYSgyLCA2LCAyMywgMC4zOCk7XG4gICAgLS1jaGF0LWJ1YmJsZS1zaGFkb3ctaG92ZXI6IDAgMThweCA0MnB4IHJnYmEoMiwgNiwgMjMsIDAuNDgpO1xuICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbWV0YS1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjg0KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1saWZlY3ljbGUtYmFkZ2UtYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE0KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1saWZlY3ljbGUtYmFkZ2UtY29sb3I6ICNjYmQ1ZTE7XG4gICAgLS1jaGF0LXBhcnRpY2lwYW50LWxhYmVsLWNvbG9yOiByZ2JhKDIwMywgMjEzLCAyMjUsIDAuNzYpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjc4KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjk2KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjcyKTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDIsIDYsIDIzLCAwLjM0KTtcbiAgICAtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgyLCA2LCAyMywgMC40Mik7XG4gICAgLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1zcGlubmVyLWJvcmRlci1jb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjMpO1xuICAgIC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc3Bpbm5lci1hY2NlbnQtY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuODYpO1xuICAgIC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjk1KTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC45OCk7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC43Mik7XG4gICAgLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1zaGFkb3c6IDAgMTJweCAyNnB4IHJnYmEoMiwgNiwgMjMsIDAuMzIpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuODYpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ib3JkZXItY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuOTUpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ob3Zlci1iYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTgpO1xuICAgIC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC43Mik7XG4gICAgLS1jaGF0LWFydGljbGUtcmF0aW5nLXNoYWRvdzogMCAxMnB4IDI2cHggcmdiYSgyLCA2LCAyMywgMC4zMik7XG4gICAgLS1jaGF0LWlucHV0LWJvcmRlci1jb2xvcjogcmdiYSg1MSwgNjUsIDg1LCAwLjc4KTtcbiAgICAtLWNoYXQtaW5wdXQtYmFja2Ryb3A6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICByZ2JhKDIsIDYsIDIzLCAwKSAwJSxcbiAgICAgICAgcmdiYSgyLCA2LCAyMywgMC44MikgNDglLFxuICAgICAgICByZ2JhKDIsIDYsIDIzLCAwLjk2KSAxMDAlXG4gICAgKTtcbiAgICAtLWNoYXQtZnVsbC1wYWdlLWlucHV0LWJhY2tkcm9wOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgcmdiYSgyLCA2LCAyMywgMCkgMCUsXG4gICAgICAgIHJnYmEoMiwgNiwgMjMsIDAuODgpIDU4JSxcbiAgICAgICAgcmdiYSgyLCA2LCAyMywgMC45OCkgMTAwJVxuICAgICk7XG4gICAgLS1jaGF0LWlucHV0LWRyYWctb3Zlci1iYWNrZHJvcDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNCwgMTY1LCAyMzMsIDAuMDgpIDAlLCByZ2JhKDgsIDQ3LCA3MywgMC41KSAxMDAlKTtcbiAgICAtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsIHJnYmEoMTUsIDIzLCA0MiwgMC45NikgMCUsIHJnYmEoMTUsIDIzLCA0MiwgMC45KSAxMDAlKTtcbiAgICAtLWNoYXQtaW5wdXQtY29udGFpbmVyLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC44OCk7XG4gICAgLS1jaGF0LWlucHV0LWNvbnRhaW5lci1zaGFkb3c6IDAgMjBweCA0NHB4IHJnYmEoMiwgNiwgMjMsIDAuNDIpLCBpbnNldCAwIDFweCAwIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xKTtcbiAgICAtLWNoYXQtaW5wdXQtdGV4dC1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICM5NGEzYjg7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoNTEsIDY1LCA4NSwgMC43OCk7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1ob3Zlci1jb2xvcjogI2Y4ZmFmYztcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgLS1jaGF0LWZpbGUtcHJldmlldy1ib3JkZXItY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuNzIpO1xuICAgIC0tY2hhdC1maWxlLXByZXZpZXctaG92ZXItYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjg2KTtcbiAgICAtLWNoYXQtZmlsZS1wcmV2aWV3LWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQyKTtcbiAgICAtLWNoYXQtZmlsZS1uYW1lLWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1maWxlLXNpemUtY29sb3I6ICM5NGEzYjg7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTQpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjgpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tcGFuZWwtY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10aXRsZS1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLXRvZ2dsZS1iYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTIpO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdG9nZ2xlLWNvbG9yOiAjZTJlOGYwO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tdHJhbnNjcmlwdC1iYWNrZ3JvdW5kOiByZ2JhKDgsIDQ3LCA3MywgMC42NCk7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi10cmFuc2NyaXB0LWNvbG9yOiAjYmFlNmZkO1xuICAgIC0tY2hhdC1kaWN0YXRpb24tc2V0dGluZ3MtY29sb3I6ICNjYmQ1ZTE7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1mYWxsYmFjay1jb2xvcjogIzk0YTNiODtcbiAgICAtLWNoYXQtcmVwbHktY29tcG9zZXItYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjk0KTtcbiAgICAtLWNoYXQtcmVwbHktY29tcG9zZXItYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjgpO1xuICAgIC0tY2hhdC1yZXBseS1jb21wb3Nlci1zaGFkb3c6IDAgMTRweCAyOHB4IHJnYmEoMiwgNiwgMjMsIDAuMzIpO1xuICAgIC0tY2hhdC1yZXBseS1kaXNtaXNzLWJhY2tncm91bmQ6IHJnYmEoNTEsIDY1LCA4NSwgMC43Nik7XG4gICAgLS1jaGF0LXJlcGx5LWRpc21pc3MtaG92ZXItYmFja2dyb3VuZDogcmdiYSg3MSwgODUsIDEwNSwgMC45KTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1jb2xvcjogI2NiZDVlMTtcbiAgICAtLWNoYXQtcmVwbHktZGlzbWlzcy1ob3Zlci1jb2xvcjogI2Y4ZmFmYztcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1iYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTYpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC44KTtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtc3BlZWNoLXN0YXR1cy1zaGFkb3c6IDAgMTZweCAzNHB4IHJnYmEoMiwgNiwgMjMsIDAuNDIpO1xuICAgIC0tY2hhdC1zcGVlY2gtc3RhdHVzLWRvdC1iYWNrZ3JvdW5kOiAjOTRhM2I4O1xuICAgIC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC45Mik7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tYm9yZGVyLWNvbG9yOiByZ2JhKDcxLCA4NSwgMTA1LCAwLjc4KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWFjdGlvbi1jb2xvcjogI2UyZThmMDtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tbGFiZWwtY29sb3I6ICNjYmQ1ZTE7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJhY2tncm91bmQ6IHJnYmEoOCwgMTUsIDI4LCAwLjk4KTtcbiAgICAtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tdGV4dGFyZWEtY29sb3I6ICNlMmU4ZjA7XG4gICAgLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJvcmRlci1jb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC43OCk7XG59XG5cbi5jb25zdHJhaW5lZEFydGljbGVWaXN1YWwge1xuICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1tYXgtd2lkdGg6IDU0cmVtO1xuICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZTogY2xhbXAoMTZweCwgNHZ3LCA0MHB4KTtcbn1cblxuLmNoYXRNYWluRmxvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICfwn5+mJyBtaW4tY29udGVudFxuICAgICAgICAn8J+SrCcgMWZyXG4gICAgICAgICfwn5OdJyBtaW4tY29udGVudFxuICAgICAgICAvIDFmcjtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdEJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBjb2xvcjogIzBmMTcyNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgMzYsIDAuMDYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uVGFza3NJblByb2dyZXNzIHtcbiAgICBncmlkLWFyZWE6IPCfn6Y7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBtaW4tY29udGVudDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDhweCAxNnB4O1xufVxuXG4uYWN0aW9ucyB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgei1pbmRleDogNDA7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbiAgICBqdXN0aWZ5LXNlbGY6IHNlbGYtZW5kO1xuICAgIG1hcmdpbjogMTZweCAyMHB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4uYWN0aW9ucy5wb3J0YWwge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmFjdGlvbnMubGVmdCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLXN0YXJ0O1xufVxuXG4uYWN0aW9ucy5yaWdodCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbn1cblxuLmFjdGlvbnNGYWRlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4uYWN0aW9uc1Njcm9sbGluZyB7XG4gICAgb3BhY2l0eTogMC4xNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogTGFyZ2UgdGFibGV0IGFuZCBzbWFsbCBkZXNrdG9wIHNjcmVlbnMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTRweCAxOHB4IDA7XG4gICAgICAgIGdhcDogN3B4O1xuICAgIH1cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdENoaWxkcmVuIHtcbiAgICBncmlkLWFyZWE6IPCfn6Y7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHotaW5kZXg6IDMwMDtcbn1cblxuLyogQ2hhdCBtZXNzYWdlcyBhcmVhICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgIGdyaWQtYXJlYTog8J+SrDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogMjhweCAyNHB4IDE4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LXBhZGRpbmctaW5saW5lKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LXBhZGRpbmctaW5saW5lKTtcbn1cblxuLmFydGljbGVNb2RlQ2hhdE1lc3NhZ2VzIC5jaGF0TWVzc2FnZSB7XG4gICAgd2lkdGg6IG1pbih2YXIoLS1jaGF0LWFydGljbGUtbGF5b3V0LW1heC13aWR0aCksIDEwMCUpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2Uge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmFydGljbGVNb2RlQ2hhdE1lc3NhZ2VzIC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uaGFzQWN0aW9uc0FuZEZpcnN0TWVzc2FnZUlzTG9uZyB7XG4gICAgcGFkZGluZy10b3A6IDgwcHg7XG59XG5cbi8qIEN1c3RvbSBzY3JvbGxiYXIgc3R5bGluZyAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDdweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjU1KTtcbn1cblxuLyogSW5kaXZpZHVhbCBjaGF0IG1lc3NhZ2UgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VTbGlkZUluIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlU3RhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNoYXQtbWVzc2FnZS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZVN0YWNrIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlU3RhY2sgPiAqIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIHtcbiAgICBjb2x1bW4tZ2FwOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIC5tZXNzYWdlU3RhY2sge1xuICAgIHdpZHRoOiBtaW4oMTAwJSwgODYwcHgpO1xuICAgIG1heC13aWR0aDogbWluKDEwMCUsIDg2MHB4KTtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhci5hcnRpY2xlTW9kZUFnZW50QXZhdGFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVzc2FnZVdpdGhNYXAge1xuICAgIC8qIG1hcmtlciBjbGFzcyBhcHBsaWVkIHRvIG1hcCBtZXNzYWdlcyBzbyB0aGV5IGNhbiBzdHJldGNoIHdpZGVyLiAqL1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLm1lc3NhZ2VXaXRoTWFwIC5tZXNzYWdlU3RhY2sge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiBtaW4oOTB2dywgOTIwcHgsIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpKTtcbiAgICBtYXgtd2lkdGg6IG1pbig5MHZ3LCA5MjBweCwgY2FsYygxMDAlIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKSkpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCAubWVzc2FnZVN0YWNrIHtcbiAgICAgICAgd2lkdGg6IG1pbig5MnZ3LCA2NDBweCk7XG4gICAgICAgIG1heC13aWR0aDogbWluKDkydncsIDY0MHB4KTtcbiAgICB9XG59XG5cbi5tZXNzYWdlTWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDZweCA4cHggMDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLW1ldGEtY29sb3IpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VNZXRhIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UgLm1lc3NhZ2VNZXRhIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZXNzYWdlTGlmZWN5Y2xlQmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LW1lc3NhZ2UtbGlmZWN5Y2xlLWJhZGdlLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LW1lc3NhZ2UtbGlmZWN5Y2xlLWJhZGdlLWNvbG9yKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm1lc3NhZ2VUaW1lc3RhbXAge1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi5tZXNzYWdlRHVyYXRpb24ge1xuICAgIG9wYWNpdHk6IDAuODU7XG59XG5cbi5tZXNzYWdlUmVwbHlCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMC44ODtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2UsIHRyYW5zZm9ybSAwLjE4cyBlYXNlO1xufVxuXG4ubWVzc2FnZVJlcGx5QnV0dG9uOmhvdmVyLFxuLm1lc3NhZ2VSZXBseUJ1dHRvbjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXB4KTtcbn1cblxuLm1lc3NhZ2VSZXBseUJ1dHRvbkljb24ge1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbn1cblxuLm1lc3NhZ2VMaWZlY3ljbGVFcnJvciB7XG4gICAgbWFyZ2luOiA0cHggNnB4IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjYjkxYzFjO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4ucGFydGljaXBhbnRMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wN2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtcGFydGljaXBhbnQtbGFiZWwtY29sb3IpO1xuICAgIG1hcmdpbjogMCAwIDdweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgbWVzc2FnZVNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmlzTm90Q29tcGxldGVNZXNzYWdlIHtcbiAgICAvKi9cbiAgICBvdXRsaW5lOiAxcHggZG90dGVkICNmZjAwMDAgIWltcG9ydGFudDtcbiAgICAvKiovXG5cbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uTm9uQ29tcGxldGVNZXNzYWdlRmlsbGVyIHtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEVuaGFuY2VkIGxvYWRpbmcgc3RhdGVzIGZvciBtZXNzYWdlcyAqL1xuLmlzTm90Q29tcGxldGVNZXNzYWdlIC5tZXNzYWdlVGV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDhweDtcbiAgICByaWdodDogMTJweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNiksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nUHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UuaXNOb3RDb21wbGV0ZU1lc3NhZ2UgLm1lc3NhZ2VUZXh0OjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRvb2xDYWxsQ2hpcHMsXG4uc291cmNlQ2l0YXRpb25zLFxuLmNpdGF0aW9uRm9vdG5vdGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yOCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY2l0YXRpb25Gb290bm90ZXMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5jaXRhdGlvbkZvb3Rub3RlSXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xufVxuXG4uY2l0YXRpb25Gb290bm90ZU51bWJlciB7XG4gICAgbWluLXdpZHRoOiAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSA3OCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnRvb2xDYWxsQ2hpcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNXB4IDExcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzgpIDI2JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8qXG4gICAgICogT3Blbk1vamkgaW5jbHVkZXMgQVNDSUkgZGlnaXRzIGZvciBrZXljYXAgZW1vamkgc2VxdWVuY2VzLiBLZWVwaW5nIGl0IGZpcnN0IGluIHRoaXMgc3RhY2tcbiAgICAgKiBtYWtlcyB0aW1lIGxhYmVscyBzdWNoIGFzIGAxMDoyOCBBTWAgdXNlIGl0cyBub24tdGV4dCBkaWdpdCBnbHlwaHMsIHNvIGNoaXBzIG11c3QgaW5oZXJpdFxuICAgICAqIHRoZSBjaGF0IHR5cG9ncmFwaHkgYW5kIHVzZSBPcGVuTW9qaSBvbmx5IGFzIGl0cyBleGlzdGluZyBlbW9qaSBmYWxsYmFjay5cbiAgICAgKi9cbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLnRvb2xDYWxsQ2hpcDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDM2JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNSwgMjMsIDQyLCAwLjE0KTtcbn1cblxuLnRvb2xDYWxsQ2hpcE9uZ29pbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMSk7XG59XG5cbi50b29sQ2FsbENoaXBTdGF0dXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50ZWFtVG9vbENhbGwsXG4udHJhbnNpdGl2ZVRvb2xDYWxsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50ZWFtQWdlbnRDaGlwLFxuLnRyYW5zaXRpdmVBZ2VudENoaXAge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udG9vbENhbGxMYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnRvb2xDYWxsV2l0aEVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEyKTtcbn1cblxuLnRvb2xDYWxsT3JpZ2luIHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRvb2xDYWxsRGV0YWlscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLnRvb2xDYWxsRGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi50b29sQ2FsbENoaXBTcGlubmVyIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogdG9vbENhbGxTcGlubmVyIDAuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHRvb2xDYWxsU3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsb2FkaW5nUHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOCk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEuMik7XG4gICAgfVxufVxuXG4vKiBUeXBpbmcgaW5kaWNhdG9yIGZvciBBSSBtZXNzYWdlcyAqL1xuLnR5cGluZ0luZGljYXRvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VTbGlkZUluIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4udHlwaW5nSW5kaWNhdG9yIC5hdmF0YXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgMTJweCA0cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIFvjipfvuI9dXG4udHlwaW5nSW5kaWNhdG9yIC5hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmNmZiO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbn1cbiovXG5cbi50eXBpbmdCdWJibGUge1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi50eXBpbmdEb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50eXBpbmdEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2YjcyODAgMCUsIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC42KSAxMDAlKTtcbiAgICBhbmltYXRpb246IHR5cGluZ0JvdW5jZSAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDEpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMikge1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgzKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuQGtleWZyYW1lcyB0eXBpbmdCb3VuY2Uge1xuICAgIDAlLFxuICAgIDgwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gICAgNDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZVRleHQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZTpub3QoLmlzTWUpIC5tZXNzYWdlVGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcbn1cblxuLnJhdGluZ1N0YXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWNvbG9yLCB2YXIoLS1zdGFyLWluYWN0aXZlLWNvbG9yLCAjY2NjKSk7XG59XG5cbi5mZWVkYmFja1N0YXIge1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWZlZWRiYWNrLXN0YXItY29sb3IsICNjY2MpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mZWVkYmFja1N0YXJJY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWNvbG9yLCBjdXJyZW50Q29sb3IpICFpbXBvcnRhbnQ7XG4gICAgZmlsbDogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWZpbGwsIG5vbmUpICFpbXBvcnRhbnQ7XG4gICAgc3Ryb2tlOiB2YXIoLS1jaGF0LWZlZWRiYWNrLXN0YXItY29sb3IsIGN1cnJlbnRDb2xvcikgIWltcG9ydGFudDtcbn1cblxuLmZlZWRiYWNrU3Rhckljb24gKiB7XG4gICAgZmlsbDogdmFyKC0tY2hhdC1mZWVkYmFjay1zdGFyLWZpbGwsIG5vbmUpICFpbXBvcnRhbnQ7XG4gICAgc3Ryb2tlOiB2YXIoLS1jaGF0LWZlZWRiYWNrLXN0YXItY29sb3IsIGN1cnJlbnRDb2xvcikgIWltcG9ydGFudDtcbn1cblxuLyogU2VuZGVyIEF2YXRhciAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogW+OKl++4j11cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hdmF0YXItYmctY29sb3IsICNlZWY2ZmIpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZzpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4qL1xuXG4vKiBNZXNzYWdlIHRleHQgYnViYmxlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lc3NhZ2UtYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhdC1idWJibGUtcmFkaXVzKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiBtaW4odmFyKC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aCksIDEwMCUpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtYnViYmxlLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1idWJibGUtc2hhZG93KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jaGF0LWJ1YmJsZS1saW5lLWhlaWdodCk7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgaHlwaGVuczogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtYnViYmxlLWZvbnQtc2l6ZSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDAyNWVtO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tY2hhdC1tZXNzYWdlLXN3aXBlLW9mZnNldCwgMHB4KSk7XG4gICAgLS1jaGF0LW1kLWhlYWRpbmctZm9udC1mYW1pbHk6IHZhcihcbiAgICAgICAgLS1mb250LWJhcmxvdy1jb25kZW5zZWQsXG4gICAgICAgICdCYXJsb3cgQ29uZGVuc2VkJyxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tY2hhdC1tZC1ib2R5LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIC0tY2hhdC1tZC10ZXh0LWNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpO1xuICAgIC0tY2hhdC1tZC1saW5rLWNvbG9yOiAjMjU2M2ViO1xuICAgIC0tY2hhdC1tZC1tdXRlZC1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG4gICAgLS1jaGF0LW1kLWlubGluZS1jb2RlLWJvcmRlcjogcmdiYSgxNSwgMjMsIDQyLCAwLjIpO1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJvcmRlcjogcmdiYSg1NiwgMTg5LCAyNDgsIDAuNTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtaGVhZC1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDJweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIGZvbnQtc2l6ZTogMTUuNXB4O1xuICAgIC0tY2hhdC1tZC1saW5rLWNvbG9yOiAjMWQ0ZWQ4O1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZzogcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyOiByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJnOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1iZzogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNDUpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnOiByZ2JhKDI0MSwgMjQ1LCAyNDksIDAuOTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1ib3JkZXI6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40NSk7XG4gICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiByZ2JhKDE5MSwgMjE5LCAyNTQsIDAuMjQpO1xufVxuXG4ucmVwbHlFbmFibGVkTWVzc2FnZVRleHQge1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5yZXBseVN3aXBlQWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LWJ1YmJsZS1zaGFkb3ctaG92ZXIpLCAwIDAgMCAxcHggcmdiYSg1NiwgMTg5LCAyNDgsIDAuMjIpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG5cbi5yZXBseVN3aXBlSW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogLTI0cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIG9wYWNpdHk6IDAuMjI7XG4gICAgY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC40NSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLnJlcGx5U3dpcGVJbmRpY2F0b3JSaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTI0cHg7XG59XG5cbi5yZXBseVN3aXBlSW5kaWNhdG9yQWN0aXZlIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMDUpO1xufVxuXG4ucmVwbHlTd2lwZUluZGljYXRvckljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuLnJlcGx5UHJldmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4ucmVwbHlCdWJibGVQcmV2aWV3IHtcbiAgICBvcGFjaXR5OiAwLjk7XG59XG5cbi5yZXBseUNvbXBvc2VyUHJldmlldyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtcmVwbHktY29tcG9zZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGF0LXJlcGx5LWNvbXBvc2VyLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1yZXBseS1jb21wb3Nlci1zaGFkb3cpO1xufVxuXG4ucmVwbHlQcmV2aWV3QWNjZW50IHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQtY29sb3IsICMwZWE1ZTkpIDg0JSwgd2hpdGUgMTYlKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJlcGx5UHJldmlld0JvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLnJlcGx5UHJldmlld0hlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG9wYWNpdHk6IDAuODI7XG59XG5cbi5yZXBseVByZXZpZXdMYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnJlcGx5UHJldmlld1NlbmRlciB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnJlcGx5UHJldmlld1RleHQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgb3BhY2l0eTogMC45O1xufVxuXG4ucmVwbHlQcmV2aWV3RGlzbWlzc0J1dHRvbiB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LXJlcGx5LWRpc21pc3MtYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtcmVwbHktZGlzbWlzcy1jb2xvcik7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBjb2xvciAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLnJlcGx5UHJldmlld0Rpc21pc3NCdXR0b246aG92ZXIsXG4ucmVwbHlQcmV2aWV3RGlzbWlzc0J1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1yZXBseS1kaXNtaXNzLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LXJlcGx5LWRpc21pc3MtaG92ZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG59XG5cbkBzdXBwb3J0cyAoY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCAjMDAwIDUwJSwgI2ZmZiA1MCUpKSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgMTU4ZGVnLFxuICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDg2JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIDE0JSksXG4gICAgICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgOTUlLCByZ2JhKDIsIDYsIDIzLCAwLjA4KSA1JSlcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LWJ1YmJsZS1ib3JkZXItY29sb3I6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3MiUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDYpIDI4JVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWQtbGluay1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgNzIlLCAjN2RkM2ZjIDI4JSk7XG4gICAgICAgIC0tY2hhdC1tZC1tdXRlZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgODQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDY1JSwgcmdiYSgxNSwgMjMsIDQyLCAwLjIpIDM1JSk7XG4gICAgICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1iZzogY29sb3ItbWl4KFxuICAgICAgICAgICAgaW4gc3JnYixcbiAgICAgICAgICAgIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikgMjIlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMzQlLCAjN2RkM2ZjIDY2JSk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDIyJSk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzAlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSAzMCVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLXRhYmxlLWhlYWQtYmc6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NCUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpIDM2JVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpIDQ1JSk7XG4gICAgfVxufVxuXG4vKiBDb3B5IGJ1dHRvbiBzdHlsZXMgKi9cbi5jb3B5QnV0dG9uQ29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHotaW5kZXg6IDM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dDpob3ZlciAuY29weUJ1dHRvbkNvbnRhaW5lcixcbi5jb3B5QnV0dG9uQ29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHggMTJweDtcbn1cblxuLmFydGljbGVNb2RlTWVzc2FnZUNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHRvcDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ubWVzc2FnZUNvbnRyb2xHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogN3B4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAuY29weUJ1dHRvbixcbi5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIC5wbGF5QnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWFydGljbGUtY29udHJvbC1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtY29sb3IpO1xufVxuXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAucGxheUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbi5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIC5jb3B5QnV0dG9uOmhvdmVyLFxuLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMgLmNvcHlCdXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtYXJ0aWNsZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhdC1hcnRpY2xlLWNvbnRyb2wtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LWFydGljbGUtY29udHJvbC1ob3Zlci1zaGFkb3cpO1xufVxuXG4uY29weUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc2hhZG93KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMsIGJveC1zaGFkb3cgMC4xNXMsIGJvcmRlciAwLjE1cztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG59XG5cbi5wbGF5QnV0dG9uIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWJhY2tncm91bmQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1jb2xvcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wbGF5QnV0dG9uSWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ucGxheUJ1dHRvblNwaW5uZXIge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtc3Bpbm5lci1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLXNwaW5uZXItYWNjZW50LWNvbG9yKTtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VQbGF5U3Bpbm5lciAwLjlzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnBsYXlCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhdC1tZXNzYWdlLWNvbnRyb2wtaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1zaGFkb3cpO1xufVxuXG4ucGxheUJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbkBrZXlmcmFtZXMgbWVzc2FnZVBsYXlTcGlubmVyIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLmNvcGllZFRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAxMTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDZweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDAuOThlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgYW5pbWF0aW9uOiBjb3BpZWRUb29sdGlwRmFkZUluIDAuMnM7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5jb3BpZWRUb29sdGlwTGVmdCB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uY29waWVkVG9vbHRpcFJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogUmVtb3ZlZCByaWdodC1hbGlnbmVkIG92ZXJyaWRlIHRvIGtlZXAgdG9vbHRpcCBwb3NpdGlvbiBzdGFibGUgKi9cblxuQGtleWZyYW1lcyBjb3BpZWRUb29sdGlwRmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk3KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk3O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5jb3B5QnV0dG9uOmhvdmVyLFxuLmNvcHlCdXR0b246Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtbWVzc2FnZS1jb250cm9sLWhvdmVyLWJvcmRlci1jb2xvcik7XG4gICAgb3BhY2l0eTogMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LW1lc3NhZ2UtY29udHJvbC1ob3Zlci1zaGFkb3cpO1xufVxuXG4uY29weUJ1dHRvbiBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uQ2hhdFtkYXRhLWNoYXQtdGhlbWU9J2RhcmsnXSAuY29weUJ1dHRvbiBzdmcgcmVjdCB7XG4gICAgZmlsbDogI2NiZDVlMTtcbiAgICBzdHJva2U6ICM5NGEzYjg7XG59XG5cbi8qIE1hcmtkb3duIHByaW1pdGl2ZXMgYXJlIGludGVudGlvbmFsbHkgY2VudHJhbGl6ZWQgaW4gYE1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzYC4gKi9cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0OmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1jaGF0LWJ1YmJsZS1zaGFkb3ctaG92ZXIpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLWNoYXQtbWVzc2FnZS1zd2lwZS1vZmZzZXQsIDBweCkpIHRyYW5zbGF0ZVkoLTEuNXB4KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qIEF0dGFjaG1lbnRzIHN0eWxlcyAqL1xuLmF0dGFjaG1lbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMjgpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uYXR0YWNobWVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDdweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNik7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDI2JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTYlLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5hdHRhY2htZW50V2l0aFJlbW92ZSB7XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmF0dGFjaG1lbnRNYWluQWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDdweCA4cHggN3B4IDEycHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmF0dGFjaG1lbnRSZW1vdmVCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLmF0dGFjaG1lbnRSZW1vdmVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTgpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cblxuLmF0dGFjaG1lbnRSZW1vdmVCdXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG59XG5cbi5hdHRhY2htZW50V2l0aFJlbW92ZSAuYXR0YWNobWVudE5hbWUge1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmF0dGFjaG1lbnQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDYyJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDM4JSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyNCUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5hdHRhY2htZW50SWNvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLmF0dGFjaG1lbnROYW1lIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qIE1lc3NhZ2UgYnV0dG9ucyBjb250YWluZXIgKi9cbi5tZXNzYWdlQnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA5cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjM2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogSW5kaXZpZHVhbCBtZXNzYWdlIGJ1dHRvbiAqL1xuLm1lc3NhZ2VCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAyMiUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC45KTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE4JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbiAgICBvcGFjaXR5OiAwLjcyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzNCUpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMjYlLCAjN2RkM2ZjIDc0JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE0KTtcbn1cblxuLm1lc3NhZ2VCdXR0b246aG92ZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAyMiUpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4uYWN0aW9uTWVzc2FnZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NSwgNjUsIDgxLCAwLjkyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgMC45NSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTgpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNywgMjQsIDM5LCAwLjk4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zMik7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOTIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzMSwgNDEsIDU1LCAwLjk1KTtcbn1cblxuLyogUmVtb3ZlIGRlZmF1bHQgbWFya2Rvd24gc3R5bGVzIGZyb20gYnV0dG9uIGNvbnRlbnQgKi9cbi5tZXNzYWdlQnV0dG9uIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4ubWVzc2FnZUJ1dHRvbiBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tZXNzYWdlQnV0dG9uIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIFJhdGluZyBzeXN0ZW0gKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC04cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogNHB4IDZweDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcuYXJ0aWNsZU1vZGVSYXRpbmcge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtYXJ0aWNsZS1yYXRpbmctYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZTpob3ZlciAucmF0aW5nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZy5hcnRpY2xlTW9kZVJhdGluZzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1hcnRpY2xlLXJhdGluZy1ob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNoYXQtYXJ0aWNsZS1yYXRpbmctaG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtYXJ0aWNsZS1yYXRpbmctc2hhZG93KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcgc3BhbiB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nOmhvdmVyIHNwYW4ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmZlZWRiYWNrSXNzdWVCdXR0b24ge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LWZhbWlseTogJ09wZW5Nb2ppQmxhY2snLCAnTm90byBFbW9qaScsICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsIHNhbnMtc2VyaWY7XG59XG5cbi8qIENoYXQgaW5wdXQgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBncmlkLWFyZWE6IPCfk507XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDIwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhdC1pbnB1dC1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtaW5wdXQtYmFja2Ryb3ApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbn1cblxuLmFydGljbGVNb2RlQ2hhdElucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNoYXQtYXJ0aWNsZS1sYXlvdXQtcGFkZGluZy1pbmxpbmUpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNoYXQtYXJ0aWNsZS1sYXlvdXQtcGFkZGluZy1pbmxpbmUpO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0SW5wdXQgPiA6bm90KC5zcGVlY2hTdGF0dXNCdWJibGUpOm5vdCguZHJhZ092ZXJsYXkpIHtcbiAgICB3aWR0aDogbWluKHZhcigtLWNoYXQtYXJ0aWNsZS1sYXlvdXQtbWF4LXdpZHRoKSwgMTAwJSk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLkNoYXQuZnVsbFBhZ2VWaXN1YWwgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWZ1bGwtcGFnZS1pbnB1dC1iYWNrZHJvcCk7XG59XG5cbi8qIEZpbGUgdXBsb2FkIGRyYWctYW5kLWRyb3Agc3R5bGVzICovXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQuZHJhZ092ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtaW5wdXQtZHJhZy1vdmVyLWJhY2tkcm9wKTtcbn1cblxuLyogRmlsZSBwcmV2aWV3IGNvbnRhaW5lciAqL1xuLmZpbGVQcmV2aWV3Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5maWxlUHJldmlld0NvbnRhaW5lci5hdHRhY2htZW50cyB7XG4gICAgLS1tZXNzYWdlLWJnLWNvbG9yOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XG4gICAgLS1tZXNzYWdlLXRleHQtY29sb3I6IHZhcigtLWlucHV0LXRleHQtY29sb3IpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dC1jb2xvcik7XG59XG5cbi8qIEluZGl2aWR1YWwgZmlsZSBwcmV2aWV3ICovXG4uZmlsZVByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWZpbGUtcHJldmlldy1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWZpbGUtcHJldmlldy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5maWxlUHJldmlldzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1maWxlLXByZXZpZXctaG92ZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGF0LWZpbGUtcHJldmlldy1ob3Zlci1ib3JkZXItY29sb3IpO1xufVxuXG4uZmlsZUljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi5maWxlSW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmZpbGVOYW1lIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWZpbGUtbmFtZS1jb2xvcik7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogMTUwcHg7XG59XG5cbi5maWxlU2l6ZSB7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZmlsZS1zaXplLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5yZW1vdmVGaWxlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMCwgMCwgMC4xKTtcbiAgICBjb2xvcjogI2ZmNDQ0NDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yZW1vdmVGaWxlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMCwgMCwgMC4yKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi8qIElucHV0IGNvbnRhaW5lciBmb3IgdGV4dGFyZWEgYW5kIGJ1dHRvbnMgKi9cbi5pbnB1dENvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1pbnB1dC1jb250YWluZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1pbnB1dC1jb250YWluZXItYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAyNnB4O1xuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtaW5wdXQtY29udGFpbmVyLXNoYWRvdyk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4uaW5wdXRDb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KTtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpLCAwIDAgMCA0cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTYpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KSA1OCUsIHJnYmEoMTUsIDIzLCA0MiwgMC4yKSA0MiUpO1xuICAgIGJveC1zaGFkb3c6IDAgMThweCA0MnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNiksXG4gICAgICAgIDAgMCAwIDRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnJhbmQtY29sb3IsICMwZWE1ZTkpIDE2JSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLkNoYXRbZGF0YS1jaGF0LXRoZW1lPSdkYXJrJ10gLmlucHV0Q29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMjExLCAyNTIsIDAuNik7XG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDQ0cHggcmdiYSgyLCA2LCAyMywgMC40OCksIDAgMCAwIDRweCByZ2JhKDE0LCAxNjUsIDIzMywgMC4xOCk7XG59XG5cbi5pbnB1dENvbnRhaW5lciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKiBBdHRhY2htZW50IGJ1dHRvbiAqL1xuLmF0dGFjaG1lbnRCdXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYXR0YWNobWVudEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWNvbG9yKTtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKiBWb2ljZSBCdXR0b24gKi9cbi52b2ljZUJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi52b2ljZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24taG92ZXItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLWhvdmVyLWNvbG9yKTtcbn1cblxuLnZvaWNlQnV0dG9uQWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb246IHZvaWNlUmVjb3JkaW5nUHVsc2UgMS41cyBpbmZpbml0ZTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIGJvdHRvbTogODZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1heC13aWR0aDogbWluKDMyMHB4LCBjYWxjKDEwMCUgLSA0OHB4KSk7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJvcmRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1zcGVlY2gtc3RhdHVzLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LXNwZWVjaC1zdGF0dXMtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtc3BlZWNoLXN0YXR1cy1zaGFkb3cpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHotaW5kZXg6IDI1O1xuICAgIGFuaW1hdGlvbjogc3BlZWNoU3RhdHVzQnViYmxlSW4gMC4ycyBlYXNlLW91dDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhdC1zcGVlY2gtc3RhdHVzLWRvdC1iYWNrZ3JvdW5kKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI0MiwgMjQyLCAwLjk3KTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVJlY29yZGluZyAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUHJvY2Vzc2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxMTYsIDE0NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzYsIDI1NCwgMjU1LCAwLjk3KTtcbiAgICBjb2xvcjogIzE1NWU3NTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3NpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZUVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45OCk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZGMyNjI2O1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLkNoYXRbZGF0YS1jaGF0LXRoZW1lPSdkYXJrJ10gLnNwZWVjaFN0YXR1c0J1YmJsZVJlY29yZGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuNDQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI3LCAyOSwgMjksIDAuNzIpO1xuICAgIGNvbG9yOiAjZmVjYWNhO1xufVxuXG4uQ2hhdFtkYXRhLWNoYXQtdGhlbWU9J2RhcmsnXSAuc3BlZWNoU3RhdHVzQnViYmxlUHJvY2Vzc2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMjExLCAyNTIsIDAuNDQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgNDcsIDczLCAwLjc0KTtcbiAgICBjb2xvcjogI2JhZTZmZDtcbn1cblxuLkNoYXRbZGF0YS1jaGF0LXRoZW1lPSdkYXJrJ10gLnNwZWVjaFN0YXR1c0J1YmJsZUVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjQ4LCAxMTMsIDExMywgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNywgMjksIDI5LCAwLjgyKTtcbiAgICBjb2xvcjogI2ZlY2FjYTtcbn1cblxuLmRpY3RhdGlvblBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtZGljdGF0aW9uLXBhbmVsLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uZGljdGF0aW9uUGFuZWxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5kaWN0YXRpb25QYW5lbFRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLXRpdGxlLWNvbG9yKTtcbn1cblxuLmRpY3RhdGlvblBhbmVsVG9nZ2xlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWRpY3RhdGlvbi1wYW5lbC1ib3JkZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNoYXQtZGljdGF0aW9uLXRvZ2dsZS1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi10b2dnbGUtY29sb3IpO1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGljdGF0aW9uSW50ZXJpbVRyYW5zY3JpcHQge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC40NSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi10cmFuc2NyaXB0LWJhY2tncm91bmQpO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLXRyYW5zY3JpcHQtY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kaWN0YXRpb25FcnJvclBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyMCwgMzgsIDM4LCAwLjI1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjQyLCAyNDIsIDAuOTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiAjOTkxYjFiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvbkVycm9yQWN0aW9ucyBidXR0b24sXG4uZGljdGF0aW9uQ29ycmVjdGlvbkFjdGlvbnMgYnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tYm9yZGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1kaWN0YXRpb24tYWN0aW9uLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uUGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25MYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLWNvcnJlY3Rpb24tbGFiZWwtY29sb3IpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25UZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1kaWN0YXRpb24tY29ycmVjdGlvbi10ZXh0YXJlYS1jb2xvcik7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1jb3JyZWN0aW9uLXRleHRhcmVhLWJhY2tncm91bmQpO1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvbkFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uU2V0dGluZ3NQYW5lbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiA4cHggMTJweDtcbn1cblxuLmRpY3RhdGlvblNldHRpbmdzUGFuZWwgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWRpY3RhdGlvbi1zZXR0aW5ncy1jb2xvcik7XG59XG5cbi5kaWN0YXRpb25GYWxsYmFja05vdGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWNoYXQtZGljdGF0aW9uLWZhbGxiYWNrLWNvbG9yKTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuQGtleWZyYW1lcyBzcGVlY2hTdGF0dXNCdWJibGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlRG90UHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlUmVjb3JkaW5nUHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMC40KTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAwLCAwLCAwKTtcbiAgICB9XG59XG5cbi8qIFVwbG9hZCBwcm9ncmVzcyBpbmRpY2F0b3IgKi9cbi51cGxvYWRQcm9ncmVzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzAwODRmZjtcbn1cblxuLnVwbG9hZFByb2dyZXNzQmFyIHtcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51cGxvYWRQcm9ncmVzc0ZpbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDg0ZmYsIHJnYmEoMCwgMTMyLCAyNTUsIDAuOCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IHVwbG9hZFByb2dyZXNzIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdXBsb2FkUHJvZ3Jlc3Mge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG59XG5cbi8qIERyYWcgb3ZlcmxheSAqL1xuLmRyYWdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMCwgMTMyLCAyNTUsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kcmFnT3ZlcmxheUNvbnRlbnQgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXQgaW5wdXQgZmllbGQgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkgdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tY2hhdC1pbnB1dC10ZXh0LWNvbG9yKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcmVzaXplOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgLyogRm9jdXMgaXMgaGFuZGxlZCBieSAuaW5wdXRDb250YWluZXIgKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jaGF0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKTtcbiAgICBvcGFjaXR5OiAwLjk7XG59XG5cbi8qIENoYXQgc2VuZCBidXR0b24gKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXSB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1pbi13aWR0aDogdW5zZXQgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yNSk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zNSk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXTphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXSBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbiBpbWcge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIFNjcm9sbCB0byBib3R0b20gYnV0dG9uICovXG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciB7XG4gICAgLyovXG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCByZWQ7XG4gICAgLyoqL1xuXG4gICAgei1pbmRleDogMjA7XG4gICAgZ3JpZC1hcmVhOiDwn5OdO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciAuc2Nyb2xsVG9Cb3R0b21XcmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTUwJSk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbmltYXRpb246IHNjcm9sbEJ1dHRvblNsaWRlSW4gMC4zcyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciAuc2Nyb2xsVG9Cb3R0b20ge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwIDAgMCAvIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbkBrZXlmcmFtZXMgc2Nyb2xsQnV0dG9uU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDIwcHgpIHNjYWxlKDAuOCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5zY3JvbGxUb0JvdHRvbUJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOHB4O1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIG1pbi13aWR0aDogMzJweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFJhdGluZyBtb2RhbCAqL1xuLnJhdGluZ01vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNSwgMjMsIDQyLCAwLjc2KTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIGFuaW1hdGlvbjogbW9kYWxGYWRlSW4gMC4zcyBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBtb2RhbEZhZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICBhbmltYXRpb246IG1vZGFsU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcblxuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmLCAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJztcbiAgICAvKiA8LSBUT0RPOiBb8J+noF1b8J+OsV0gQmV0dGVyLCBkZWZpbmUgb3RoZXIgZm9udHMgKi9cbn1cblxuQGtleWZyYW1lcyBtb2RhbFNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLnJhdGluZ01vZGFsQ29udGVudCBoMyB7XG4gICAgbWFyZ2luOiAwIDAgMjRweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zdGFycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uc3RhcnMgc3BhbiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5zdGFycyBzcGFuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxNSwgMCwgMC4xKTtcbn1cblxuLnJhdGluZ01vZGFsU3RhciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xufVxuXG4ucmF0aW5nTW9kYWxbZGF0YS1jaGF0LW1vZGFsPSdpbWFnZS1hdHRhY2htZW50J10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMjRweDtcbn1cblxuLnJhdGluZ01vZGFsW2RhdGEtY2hhdC1tb2RhbD0nY2l0YXRpb24tYnJvd3NlciddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDI0cHg7XG59XG5cbi50b29sQ2FsbE1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNpdGF0aW9uQnJvd3Nlck1vZGFsIHtcbiAgICB3aWR0aDogbWluKDkwdncsIDgwMHB4KTtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5jaXRhdGlvbkJyb3dzZXJNb2RhbEJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmltYWdlQXR0YWNobWVudE1vZGFsIHtcbiAgICB3aWR0aDogbWluKDkydncsIDEwNDBweCk7XG4gICAgbWF4LXdpZHRoOiAxMDQwcHg7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gNDhweCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5pbWFnZUF0dGFjaG1lbnRNb2RhbEhlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMjBweCA2OHB4IDE0cHggMjRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uaW1hZ2VBdHRhY2htZW50TW9kYWxUaXRsZSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwZjE3MmEgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4uaW1hZ2VBdHRhY2htZW50TW9kYWxQcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTMwcHgpO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gMTMwcHgpO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogIzBmMTcyYTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pbWFnZUF0dGFjaG1lbnRNb2RhbEltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE2MnB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDE2MnB4KTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4udG9vbENhbGxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VlZjJmZiAwJSwgI2Y1ZjNmZiA0MCUsICNmZWZjYzkgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi50b29sQ2FsbEljb24ge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbn1cblxuLnRvb2xDYWxsSGVhZGVyTWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4udG9vbENhbGxNb2RhbExhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnRvb2xDYWxsVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsU3VidGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi50b29sQ2FsbEdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG59XG5cbi50b29sQ2FsbFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCA0MHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi50b29sQ2FsbFBhbmVsVGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG59XG5cbi50b29sQ2FsbExpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnRvb2xDYWxsSXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4udG9vbENhbGxJdGVtTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG59XG5cbi50b29sQ2FsbEl0ZW1WYWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi50b29sQ2FsbFN1bW1hcnkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeU1ldGEge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbFN1bW1hcnlNZXRhQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDVweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzksIDcwLCAyMjksIDAuMTUpO1xuICAgIGNvbG9yOiAjMzEyZTgxO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4udG9vbENhbGxFbXB0eSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0NhcmQge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjhmYmZmIDAlLCAjZjhmYWZjIDEwMCUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxQZW5kaW5nQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjEyKTtcbiAgICBjb2xvcjogIzAzNjlhMTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdNZXNzYWdlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b25MaW5lIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNyksIHJnYmEoMjQxLCAyNDUsIDI0OSwgMSksIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiB0b29sQ2FsbFBlbmRpbmdTa2VsZXRvblB1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvblNob3J0IHtcbiAgICB3aWR0aDogNjglO1xufVxuXG5Aa2V5ZnJhbWVzIHRvb2xDYWxsUGVuZGluZ1NrZWxldG9uUHVsc2Uge1xuICAgIGZyb20ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwJSA1MCU7XG4gICAgfVxufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZCB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMzMzQxNTU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KTtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3c6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93IHN0cm9uZyB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbElzc3VlcyB7XG4gICAgcGFkZGluZzogMCAzMnB4IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbElzc3VlQmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi50b29sQ2FsbElzc3VlRXJyb3Ige1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpO1xuICAgIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4udG9vbENhbGxJc3N1ZVdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM0LCAxNzksIDgsIDAuMTYpO1xuICAgIGNvbG9yOiAjYTE2MjA3O1xufVxuXG4uYWdlbnRQcm9qZWN0U3RhdHVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiAwIDAgMTRweCAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYWdlbnRQcm9qZWN0U3RhdHVzRG90IHtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICBmbGV4OiBub25lO1xufVxuXG4uYWdlbnRQcm9qZWN0U3RhdHVzUnVubmluZyB7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5hZ2VudFByb2plY3RTdGF0dXNTdG9wcGVkIHtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmFnZW50UHJvamVjdExpbmtzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5hZ2VudFByb2plY3RMaW5rIHtcbiAgICBjb2xvcjogIzFkNGVkODtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmFnZW50UHJvamVjdExpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYWdlbnRQcm9qZWN0Q2hhbmdlIHtcbiAgICBwYWRkaW5nOiAwIDMycHggOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG59XG5cbi5hZ2VudFByb2plY3RDaGFuZ2VTdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uYWdlbnRQcm9qZWN0Q2hhbmdlQ291bnQge1xuICAgIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uYWdlbnRQcm9qZWN0Q2hhbmdlQ291bnRBZGRlZCB7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5hZ2VudFByb2plY3RDaGFuZ2VDb3VudFJlbW92ZWQge1xuICAgIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4uYWdlbnRQcm9qZWN0Q29tbWl0IHtcbiAgICBmb250LWZhbWlseTogQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5hZ2VudFByb2plY3RDaGFuZ2VkRmlsZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5hZ2VudFByb2plY3RDaGFuZ2VkRmlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5hZ2VudFByb2plY3RDaGFuZ2VkRmlsZVBhdGgge1xuICAgIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmFnZW50UHJvamVjdENoYW5nZWRGaWxlQ291bnRzIHtcbiAgICBmb250LWZhbWlseTogQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFnZW50UHJvamVjdERpZmYge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5hZ2VudFByb2plY3REaWZmQ29kZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDA7XG4gICAgbWF4LWhlaWdodDogMzIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5hZ2VudFByb2plY3REaWZmTGluZSB7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgY29sb3I6ICMzMzQxNTU7XG59XG5cbi5hZ2VudFByb2plY3REaWZmTGluZUFkZGVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNCk7XG4gICAgY29sb3I6ICMwNjVmNDY7XG59XG5cbi5hZ2VudFByb2plY3REaWZmTGluZVJlbW92ZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpO1xuICAgIGNvbG9yOiAjOTkxYjFiO1xufVxuXG4uYWdlbnRQcm9qZWN0RGlmZkxpbmVIdW5rIHtcbiAgICBjb2xvcjogIzZkMjhkOTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwOSwgNDAsIDIxNywgMC4wOCk7XG59XG5cbi5hZ2VudFByb2plY3REaWZmTGluZU1ldGEge1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uYWdlbnRQcm9qZWN0RGlmZlRydW5jYXRlZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLnRvb2xDYWxsTW9kZUZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMzJweCAyNHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItY29sb3I6ICM5NGEzYjg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4udG9vbENhbGxDbG9ja1BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLnRvb2xDYWxsQ2xvY2tMYWJlbHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRvb2xDYWxsQ2xvY2tQcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxDbG9ja1NlY29uZGFyeSB7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi50b29sQ2FsbENsb2NrTWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBjb2xvcjogIzY2NzA4NTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi50aW1lb3V0VG9vbFN1bW1hcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi50aW1lb3V0VG9vbFByaW1hcnlTZW50ZW5jZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbFNlY29uZGFyeVNlbnRlbmNlIHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbEFjdGlvblJvdyB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTRhM2I4O1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAwLjQ1O1xufVxuXG4ubWVtb3J5TW9kYWxIZWFkZXIge1xuICAgIHBhZGRpbmc6IDI4cHggMzJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZGZkZmQgMCUsICNmNmY5ZmYgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5tZW1vcnlNb2RhbEljb24ge1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2MzY2ZjEsICNhODU1ZjcpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG59XG5cbi5tZW1vcnlNb2RhbEhlYWRlclRleHQge1xuICAgIGZsZXg6IDE7XG59XG5cbi5tZW1vcnlNb2RhbFRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5tZW1vcnlNb2RhbFN1YnRpdGxlIHtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWVtb3J5TW9kYWxTdGF0dXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbW9yeVN0YXR1c0RvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lbW9yeU1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDMycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubWVtb3J5TWVzc2FnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWVtb3J5TWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi5tZW1vcnlNZXRhTGFiZWwge1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWVtb3J5TWV0YVZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ubWVtb3J5U3RvcmVTZWN0aW9uLFxuLm1lbW9yeVJldHJpZXZlU2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLm1lbW9yeUNhcmRDb250ZW50IHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm1lbW9yeUNhcmRNZXRhIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWVtb3J5U2NvcGVCYWRnZSB7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjQsIDU4LCAyMzcsIDAuMTIpO1xufVxuXG4ubWVtb3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUVtcHR5U3RhdGUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjNjNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmRlNjhhO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgY29sb3I6ICM5MjQwMGU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbW9yeUxpc3RGb290ZXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW1vcnlTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNik7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5tZW1vcnlTdGF0dXNXYXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNCwgMTc5LCA4LCAwLjE2KTtcbiAgICBjb2xvcjogI2ExNjIwNztcbn1cblxuLm1lbW9yeVN0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuLm1lbW9yeVN0YXR1c05ldXRyYWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KTtcbiAgICBjb2xvcjogIzFkNGVkODtcbn1cblxuLnNlYXJjaE1vZGFsSGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogNzJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7XG59XG5cbi5zZWxmTGVhcm5pbmdNb2RhbEhlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZmFmYyAwJSwgI2ZlZjljMyA0NSUsICNlY2ZjY2IgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXJHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhciB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlOGYwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFySW5pdGlhbCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWxmTGVhcm5pbmdUZWFjaGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmRlNjhhIDAlLCAjODZlZmFjIDEwMCUpO1xufVxuXG4uc2VsZkxlYXJuaW5nSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWxmTGVhcm5pbmdUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhQ2hpcCB7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlbGZMZWFybmluZ0NvbW1pdG1lbnRzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nQ29tbWl0bWVudHNMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2VsZkxlYXJuaW5nQm9va0VkaXRvciB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdFbXB0eSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzk0YTNiODtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4udGVhbU1vZGFsSGVhZGVyIHtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGVhbUhlYWRlclBhcnRpY2lwYW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50ZWFtSGVhZGVyUHJvZmlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4udGVhbUhlYWRlclByb2ZpbGVMaW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRlYW1IZWFkZXJBdmF0YXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udGVhbUhlYWRlck5hbWUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udGVhbUhlYWRlckRpdmlkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uc2VhcmNoTW9kYWxJY29uIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLnNlYXJjaE1vZGFsUXVlcnkge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjEyNCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnNlYXJjaE1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udGVhbUNoYXRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnRlYW1Ub29sQ2FsbFNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi50ZWFtVG9vbENhbGxHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsSGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4udGVhbVRvb2xDYWxsQ2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlscyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0NsZWFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNDbGVhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbn1cblxuLnNlYXJjaFJlc3VsdHNMaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWFyY2hSZXN1bHRzUmF3IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC13aWR0aDogNjUwcHg7XG59XG5cbi5zZWFyY2hSZXN1bHRJdGVtIHtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4uc2VhcmNoUmVzdWx0VXJsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMyMDIxMjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNlYXJjaFJlc3VsdFVybCBhIHtcbiAgICBjb2xvcjogIzIwMjEyNDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSB7XG4gICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDRweCAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGEge1xuICAgIGNvbG9yOiAjMWEwZGFiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc2VhcmNoUmVzdWx0U25pcHBldCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU4O1xuICAgIGNvbG9yOiAjNGQ1MTU2O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm5vUmVzdWx0cyB7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM3MDc1N2E7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMjBweCAwO1xufVxuLmNpdGF0aW9uRGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cblxuLmNpdGF0aW9uUHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG5cbi5jaXRhdGlvbklmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNpdGF0aW9uSWZyYW1lTG9hZGluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4uY2l0YXRpb25TY3JlZW5zaG90RmFsbGJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jaXRhdGlvblNjcmVlbnNob3RJbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHRvcDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNpdGF0aW9uU2NyZWVuc2hvdExpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBjb2xvcjogIzMzMztcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXM7XG59XG5cbi5jaXRhdGlvblNjcmVlbnNob3RMaW5rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uY2l0YXRpb25Ccm93c2VyTW9kYWwgLmxpdmVCcm93c2VyUHJldmlldyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlldzpmdWxsc2NyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGYxNzJhO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJCdXR0b24ge1xuICAgIGZsZXg6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VG9vbGJhckJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3Wm9vbUxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJDbG9zZUJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1Rvb2xiYXJDbG9zZUJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1VybEZvcm0ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1hcmdpbjogMCA0cHg7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdVcmxJbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3VXJsSW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzk0YTNiODtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld1N0cmVhbUFyZWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDYwdmg7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLmNpdGF0aW9uQnJvd3Nlck1vZGFsIC5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1BcmVhIHtcbiAgICBoZWlnaHQ6IG1pbig2MHZoLCA2NDBweCk7XG4gICAgbWluLWhlaWdodDogbWluKDQwMHB4LCBjYWxjKDEwMGR2aCAtIDE0MHB4KSk7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1BcmVhOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjOTRhM2I4O1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3OmZ1bGxzY3JlZW4gLmxpdmVCcm93c2VyUHJldmlld1N0cmVhbUFyZWEge1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5saXZlQnJvd3NlclByZXZpZXdTdHJlYW1JbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3Q29ubmVjdGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4ubGl2ZUJyb3dzZXJQcmV2aWV3T3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNTUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxpdmVCcm93c2VyUHJldmlld092ZXJsYXlCdXR0b24ge1xuICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHAge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgc3Ryb25nIHtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYSB7XG4gICAgY29sb3I6ICMwMDdiZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jaXRhdGlvbkV4Y2VycHQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2l0YXRpb25FeGNlcnB0IGg0IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi5jaXRhdGlvbkhpbnQge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi50b29sQ2FsbERhdGFDb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi50b29sQ2FsbFBheWxvYWRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3IgLm92ZXJmbG93LWd1YXJkKSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3ItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbn1cblxuLnRvb2xDYWxsRGF0YSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4udG9vbENhbGxNb2RhbCAudG9vbENhbGxEYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmF0aW5nSW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4wNSk7XG4gICAgY29sb3I6ICMwYjEyMjA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnJhdGluZ0lucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDg0ZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ucmF0aW5nSW5wdXRbcmVhZG9ubHldIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjAxKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246Zmlyc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpmaXJzdC1jaGlsZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDcxZDEgMCUsICMwMDUyYTMgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZG93bmxvYWRCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA5OWZmIDAlLCAjMDA3N2RkIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG59XG5cbi5kb3dubG9hZEJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHN2ZyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBQcmltYXJ5IGNoYXQgdG9vbGJhciBidXR0b25zICovXG4uY2hhdEJ1dHRvbixcbi51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDExcHggMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDBkZWcsICMwZjhlZjUgMCUsICMwYjZmZDAgNTYlLCAjMGQ1ZmJiIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHggIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW0gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgxNCwgMTE2LCAyMTksIDAuMjgpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxOHB4KSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbiAhaW1wb3J0YW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTEwcHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5jaGF0QnV0dG9uOjpiZWZvcmUsXG4udXNlVGVtcGxhdGVCdXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTEwJTtcbiAgICB3aWR0aDogNzUlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KSA0OCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC40NXMgZWFzZTtcbn1cblxuLmNoYXRCdXR0b246aG92ZXI6OmJlZm9yZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxNDAlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0MGRlZywgIzFhOWFmZiAwJSwgIzBkN2RlOCA1NiUsICMxMTY4YzkgMTAwJSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDE0cHggMzBweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4zNCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi5jaGF0QnV0dG9uOmFjdGl2ZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjk4NSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cblxuLmNoYXRCdXR0b246Zm9jdXMsXG4udXNlVGVtcGxhdGVCdXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgxNCwgMTE2LCAyMTksIDAuMzIpLCAwIDAgMCAzcHggcmdiYSg1NiwgMTg5LCAyNDgsIDAuMjgpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikgIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b24gc3ZnLFxuLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgZmlsdGVyIDAuMnMgZWFzZTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMjQpKTtcbn1cblxuLmNoYXRCdXR0b246aG92ZXIgc3ZnLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KSB0cmFuc2xhdGVYKDFweCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI4KSk7XG59XG5cbi5jaGF0QnV0dG9uVGV4dCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQsXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXIgLmNoYXRCdXR0b25UZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcbn1cblxuLnNhdmVCdXR0b25Db250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYXZlTWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc2F2ZU1lbnVJdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzExMTtcbn1cblxuLnNhdmVNZW51SXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cblxuLnNhdmVNZW51RGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBtYXJnaW46IDRweCAwO1xufVxuXG4uY2hhdEZlZWRiYWNrUGFuZWwge1xuICAgIHdpZHRoOiBtaW4oMjYwcHgsIDEwMCUpO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMThweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLmNoYXRGZWVkYmFja1RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cHgpO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMjU2M2ViO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMmZmO1xuICAgIGNvbG9yOiAjNjM2NmYxO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0ndHJ1ZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTBmMmZlO1xuICAgIGNvbG9yOiAjMDI4NGM3O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0nZmFsc2UnXSAuY2hhdEZlZWRiYWNrSWNvbiB7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLmNoYXRGZWVkYmFja01ldGEge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uY2hhdEZlZWRiYWNrRGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvciB7XG4gICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJbmRpY2F0b3JBY3RpdmUge1xuICAgIGNvbG9yOiAjMTY2NTM0O1xuICAgIGJhY2tncm91bmQ6ICNkY2ZjZTc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM0ZDM5OTtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckluYWN0aXZlIHtcbiAgICBjb2xvcjogIzcxM2YxMjtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmOWMzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYWNjMTU7XG59XG5cbi8qIFBhdXNlL1Jlc3VtZSBidXR0b24gdmFyaWFudCAocmV1c2VzIC5jaGF0QnV0dG9uIGJhc2Ugc3R5bGVzIGZvciBEUlkpICovXG4ucGF1c2VCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmIzNDcgMCUsICNmZjhjNDIgMTAwJSkgIWltcG9ydGFudDsgLyogV2FybSBvcmFuZ2UgZm9yIFwiYWN0aXZlL3J1bm5pbmdcIiAqL1xufVxuXG4ucGF1c2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmMwNjcgMCUsICNmZjllNWYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogd2FpdCAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2VkIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpICFpbXBvcnRhbnQ7IC8qIEdyZWVuIHdoZW4gcGF1c2VkIChyZWFkeSB0byByZXN1bWUpICovXG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzNGQzOTkgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zNSk7XG59XG5cbi5wYXVzZUJ1dHRvbiBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzaW5nIHN2ZyB7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uc3RvcEJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RjMjYyNiAwJSwgIzk5MWIxYyAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjg3MTcxIDAlLCAjZGMyNjI2IDEwMCUpICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnN0b3BCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMjQ4LCAxMTMsIDExMywgMC44KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciBiYXIgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3JCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4xKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMSkgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4yKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMikgMTAwJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGNvbG9yOiAjMTBiOTgxO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxJY29uUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogVm9pY2UgY2FsbCBwdWxzZSBhbmltYXRpb24gKi9cbi52b2ljZUNhbGxQdWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbEljb25QdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB2b2ljZUNhbGxQdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMyk7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGluIG1lc3NhZ2VzICovXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xufVxuXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLyogRmVlZGJhY2sgc3RhdHVzIGJhbm5lciAqL1xuLmZlZWRiYWNrU3RhdHVzIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAzMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zNSk7XG4gICAgei1pbmRleDogMTAwMDA7IC8qIFtGaXggei1pbmRleF06IEVuc3VyZSBpdCdzIGFib3ZlIHRoZSBoZWFkZXIgKHotNTApIGFuZCBvdGhlciBVSSBlbGVtZW50cyAqL1xuICAgIGFuaW1hdGlvbjogZmVlZGJhY2tTdGF0dXNTbGlkZUluIDAuMjhzIGVhc2Utb3V0O1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNFcnJvciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCAwJSwgI2RjMjYyNiAxMDAlKTtcbiAgICBjb2xvcjogI2ZlZjJmMjtcbn1cblxuQGtleWZyYW1lcyBmZWVkYmFja1N0YXR1c1NsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5DaGF0IHtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDM2cHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgODUlLFxuICAgICAgICAgICAgNTYwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiAxMHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy15OiAxNHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy14OiAxOHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemU6IDQ0cHg7XG4gICAgfVxuXG4gICAgLmNvbnN0cmFpbmVkQXJ0aWNsZVZpc3VhbCB7XG4gICAgICAgIC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZTogY2xhbXAoMjRweCwgNnZ3LCAzNnB4KTtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIC5tZXNzYWdlU3RhY2sge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY4O1xuICAgIH1cblxuICAgIC5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIH1cblxuICAgIC8qIFvjipfvuI9dXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICB9XG4gICAgKi9cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDE2cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNwZWVjaFN0YXR1c0J1YmJsZSB7XG4gICAgICAgIHJpZ2h0OiAxNHB4O1xuICAgICAgICBib3R0b206IDc2cHg7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjhweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgcGFkZGluZzogN3B4IDExcHg7XG4gICAgfVxuXG4gICAgLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIH1cblxuICAgIC5zY3JvbGxUb0JvdHRvbSB7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSAxNjBweCk7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxDb250ZW50LmltYWdlQXR0YWNobWVudE1vZGFsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDMycHgpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zdGFycyB7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5zdGFycyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01vZGFsSGVhZGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ0F2YXRhckdyb3VwIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5zZWxmTGVhcm5pbmdNZXRhUm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogODBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDMycHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgOTAlLFxuICAgICAgICAgICAgNTIwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiA4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEycHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogOHB4IDEycHggMDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgfVxuXG4gICAgLyogW+OKl++4j11cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIH1cbiAgICAqL1xuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyxcbiAgICAuZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE0MHB4KTtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsW2RhdGEtY2hhdC1tb2RhbD0naW1hZ2UtYXR0YWNobWVudCddIHtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxbZGF0YS1jaGF0LW1vZGFsPSdjaXRhdGlvbi1icm93c2VyJ10ge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyMHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQuaW1hZ2VBdHRhY2htZW50TW9kYWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI0cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDI0cHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQuY2l0YXRpb25Ccm93c2VyTW9kYWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE2cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDE2cHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIH1cblxuICAgIC5jaXRhdGlvbkJyb3dzZXJNb2RhbCAubGl2ZUJyb3dzZXJQcmV2aWV3U3RyZWFtQXJlYSB7XG4gICAgICAgIGhlaWdodDogNTh2aDtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDMyMHB4LCBjYWxjKDEwMGR2aCAtIDExMnB4KSk7XG4gICAgfVxuXG4gICAgLmltYWdlQXR0YWNobWVudE1vZGFsSGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMTZweCA1NnB4IDEycHggMTZweDtcbiAgICB9XG5cbiAgICAuaW1hZ2VBdHRhY2htZW50TW9kYWxQcmV2aWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDk2cHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDk2cHgpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cblxuICAgIC5pbWFnZUF0dGFjaG1lbnRNb2RhbEltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEyMHB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSAxMjBweCk7XG4gICAgfVxufVxuXG4vKiBSZWR1Y2VkIG1vdGlvbiBzdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLFxuICAgIC5zY3JvbGxUb0JvdHRvbSxcbiAgICAucmF0aW5nTW9kYWwsXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCxcbiAgICAuZmVlZGJhY2tTdGF0dXMge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uLFxuICAgIC8qIFvjipfvuI9dIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nLCAqL1xuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8qIEhpZ2ggY29udHJhc3QgbW9kZSBzdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IGhpZ2gpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICB9XG59XG5cbi8qIEVtYWlsIG1vZGFsIHN0eWxlcyAqL1xuLmVtYWlsQ29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi5lbWFpbE1vZGFsSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uZW1haWxIZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5lbWFpbEhlYWRlckxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uZW1haWxNZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5lbWFpbEZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmVtYWlsRmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVtYWlsRmllbGQgc3Ryb25nIHtcbiAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmVtYWlsUmVjaXBpZW50cyB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmVtYWlsQm9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmVtYWlsQm9keSBzdHJvbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAyMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQgcCB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xufVxuXG4uZW1haWxCb2R5Q29udGVudCBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5icm93c2VyUnVuTW9kYWxIZWFkZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGZhZmMgMCUsICNlY2ZlZmYgNDAlLCAjZWNmY2NiIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGJlYWZlO1xufVxuXG4uYnJvd3NlclJ1bkhlYWRlclRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJTdGF0dXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLmJyb3dzZXJSdW5NZXRhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMThweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5XYXJuaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYmJmMjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmYmViO1xuICAgIGNvbG9yOiAjOTI0MDBlO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbn1cblxuLmJyb3dzZXJSdW5FcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmNhNWE1O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjJmMjtcbiAgICBjb2xvcjogIzdmMWQxZDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3JTdW1tYXJ5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3JTdGVwcyB7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyBzdW1tYXJ5IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM3ZjFkMWQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMgcHJlIHtcbiAgICBtYXJnaW46IDEwcHggMCAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjdlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVkN2FhO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbi5icm93c2VyUnVuRmFsbGJhY2tDb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbn1cblxuLmJyb3dzZXJSdW5TdGF0dXNCYW5uZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTUpO1xuICAgIGNvbG9yOiAjMzM0MTU1O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhR3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIyMHB4LCAxZnIpKTtcbiAgICBnYXA6IDE0cHg7XG59XG5cbi5icm93c2VyUnVuTWVkaWFDYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuTWVkaWFDYXJkSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5icm93c2VyUnVuTWVkaWFUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhSW1hZ2UsXG4uYnJvd3NlclJ1bk1lZGlhVmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG1heC1oZWlnaHQ6IDI2MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTG9nIHtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25Mb2dUaXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkl0ZW0ge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjkpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uUGVuZGluZyB7XG4gICAgb3BhY2l0eTogMC44Mjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25SdW5uaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uQ29tcGxldGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMjIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25FcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjI0KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZSB7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNjYmQ1ZTE7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGVSdW5uaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiAjMGVhNWU5O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDE0LCAxNjUsIDIzMywgMC4xNCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGVDb21wbGV0ZSB7XG4gICAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgxNiwgMTg1LCAxMjksIDAuMTIpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlRXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNlZjQ0NDQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbk1ldGEge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAgIC5DaGF0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IHtcbiAgICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiA0OHB4IDQwcHggNjRweCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCByZ2JhKDIsIDYsIDIzLCAwLjk4KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjkyKSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU2LCAxODksIDI0OCwgMC4zMikgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0MHB4IDgwcHggcmdiYSgwLCAwLCAwLCAwLjM1KSBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2Uge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgMTQ1ZGVnLFxuICAgICAgICAgICAgdmFyKC0tYWdlbnQtY2hhdC1icmFuZC1jb2xvci1saWdodCwgIzdkZDNmYyksXG4gICAgICAgICAgICB2YXIoLS1hZ2VudC1jaGF0LWJyYW5kLWNvbG9yLCAjMGVhNWU5KVxuICAgICAgICApICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZjhmYWZjICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDE4cHggNDBweCByZ2JhKDIsIDYsIDIzLCAwLjYpIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMjJweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZmJmZiAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzBmMTcyYSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNDUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zKSBpbnNldCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm1lc3NhZ2VNZXRhLFxuICAgIC5wYXJ0aWNpcGFudExhYmVsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC44KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5hY3Rpb25zLFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCxcbiAgICAuc2Nyb2xsVG9Cb3R0b20sXG4gICAgLmZlZWRiYWNrU3RhdHVzLFxuICAgIC52b2ljZUNhbGxJbmRpY2F0b3JCYXIsXG4gICAgLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY29weUJ1dHRvbkNvbnRhaW5lcixcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uZW1haWxTdGF0dXMge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qKlxuICogVE9ETzogW/CfjIldIERSWSBNYXJrZG93biBwcmltaXRpdmVzIHN0eWxpbmdcbiAqL1xuLyogSW1hZ2UgcHJvbXB0IHByZXZpZXcgc3R5bGVzICovXG4uaW1hZ2VQcm9tcHQge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5pbWFnZVByb21wdFByZXZpZXcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAxMTgsIDI1NSwgMC4wNSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSk7XG59XG5cbi5pbWFnZVByb21wdEltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pbWFnZVByb21wdFBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uaW1hZ2VQcm9tcHRTcGlubmVyIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzI1NjNlYjtcbiAgICBhbmltYXRpb246IGltYWdlUHJvbXB0U3Bpbm5lciAwLjlzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBpbWFnZVByb21wdFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbi5pbWFnZVByb21wdE1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLmltYWdlUHJvbXB0UHJvbXB0IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzExMTtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLmltYWdlUHJvbXB0U3RhdHVzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi5pbWFnZVByb21wdEVycm9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI2RjMjYyNjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgMzgsIDM4LCAwLjA4KTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXIge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMTIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyU3Bpbm5lciB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMjJkM2VlO1xuICAgIGFuaW1hdGlvbjogcmljaEZlYXR1cmVTcGlubmVyIDAuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlckNvcHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyU3RhdHVzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5wcm9ncmVzc1BhbmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSwgcmdiYSgyMTksIDIzNCwgMjU0LCAwLjg2KSk7XG4gICAgcGFkZGluZzogMTJweCAxM3B4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5wcm9ncmVzc1BhbmVsVGl0bGUgcCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFkNGVkODtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uQm9keSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFNlY3Rpb25Cb2R5IHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnByb2dyZXNzUGFuZWxMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLnByb2dyZXNzUGFuZWxMaXN0SXRlbSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdEJ1bGxldCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMjU2M2ViO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1TcGlubmVyIHtcbiAgICB3aWR0aDogMTFweDtcbiAgICBoZWlnaHQ6IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjYpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTYzZWI7XG4gICAgYW5pbWF0aW9uOiBwcm9ncmVzc1BhbmVsU3Bpbm5lciAwLjc1cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1Db21wbGV0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4xNik7XG4gICAgY29sb3I6ICMxNTgwM2Q7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtVGV4dCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbEl0ZW1UZXh0IHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuQGtleWZyYW1lcyBwcm9ncmVzc1BhbmVsU3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyByaWNoRmVhdHVyZVNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iXX0= */";
|
|
23336
|
+
var styles$7 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","constrainedArticleVisual":"Chat-module_constrainedArticleVisual__0axxM","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","articleModeChatMessages":"Chat-module_articleModeChatMessages__ufofT","chatMessage":"Chat-module_chatMessage__nmLaZ","articleModeAgentMessage":"Chat-module_articleModeAgentMessage__Y79L7","messageStack":"Chat-module_messageStack__n0xNL","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","isMe":"Chat-module_isMe__nBtaV","avatar":"Chat-module_avatar__gL6bm","articleModeAgentAvatar":"Chat-module_articleModeAgentAvatar__UCKDX","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageReplyButton":"Chat-module_messageReplyButton__S5hXM","messageReplyButtonIcon":"Chat-module_messageReplyButtonIcon__2Nk3i","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","citationFootnotes":"Chat-module_citationFootnotes__LAWdh","citationFootnoteItem":"Chat-module_citationFootnoteItem__JXTAX","citationFootnoteNumber":"Chat-module_citationFootnoteNumber__CMmm9","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","feedbackStar":"Chat-module_feedbackStar__tC7XH","feedbackStarIcon":"Chat-module_feedbackStarIcon__BuPen","articleModeAgentMessageText":"Chat-module_articleModeAgentMessageText__vBlIP","replyEnabledMessageText":"Chat-module_replyEnabledMessageText__-SV9f","replySwipeActive":"Chat-module_replySwipeActive__dhAqt","replySwipeIndicator":"Chat-module_replySwipeIndicator__u92JU","replySwipeIndicatorRight":"Chat-module_replySwipeIndicatorRight__3CoAW","replySwipeIndicatorActive":"Chat-module_replySwipeIndicatorActive__m9gwU","replySwipeIndicatorIcon":"Chat-module_replySwipeIndicatorIcon__0K1SX","replyPreview":"Chat-module_replyPreview__Lt-Bg","replyBubblePreview":"Chat-module_replyBubblePreview__DNe3r","replyComposerPreview":"Chat-module_replyComposerPreview__80Wdf","replyPreviewAccent":"Chat-module_replyPreviewAccent__Uo3pe","replyPreviewBody":"Chat-module_replyPreviewBody__reKG-","replyPreviewHeading":"Chat-module_replyPreviewHeading__IeegE","replyPreviewLabel":"Chat-module_replyPreviewLabel__J-BrF","replyPreviewSender":"Chat-module_replyPreviewSender__z6SYu","replyPreviewText":"Chat-module_replyPreviewText__cY-Hc","replyPreviewDismissButton":"Chat-module_replyPreviewDismissButton__-L9MF","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","articleModeMessageActions":"Chat-module_articleModeMessageActions__h2qaG","articleModeMessageControls":"Chat-module_articleModeMessageControls__hncCw","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentWithRemove":"Chat-module_attachmentWithRemove__n2-O6","attachmentMainAction":"Chat-module_attachmentMainAction__Onkl3","attachmentRemoveButton":"Chat-module_attachmentRemoveButton__dC5ne","attachmentName":"Chat-module_attachmentName__aMx56","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","articleModeRating":"Chat-module_articleModeRating__dwZqm","feedbackIssueButton":"Chat-module_feedbackIssueButton__9NrrF","chatInput":"Chat-module_chatInput__1Ecan","articleModeChatInput":"Chat-module_articleModeChatInput__zBTV4","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","dragOverlay":"Chat-module_dragOverlay__SEGoS","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","citationBrowserModal":"Chat-module_citationBrowserModal__jYU4c","citationBrowserModalBody":"Chat-module_citationBrowserModalBody__lvTWb","imageAttachmentModal":"Chat-module_imageAttachmentModal__Ef6L5","imageAttachmentModalHeader":"Chat-module_imageAttachmentModalHeader__onK3Z","imageAttachmentModalTitle":"Chat-module_imageAttachmentModalTitle__AhuMt","imageAttachmentModalPreview":"Chat-module_imageAttachmentModalPreview__gXDer","imageAttachmentModalImage":"Chat-module_imageAttachmentModalImage__t61oG","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","agentProjectStatus":"Chat-module_agentProjectStatus__870th","agentProjectStatusDot":"Chat-module_agentProjectStatusDot__vCMF3","agentProjectStatusRunning":"Chat-module_agentProjectStatusRunning__a4-Ud","agentProjectStatusStopped":"Chat-module_agentProjectStatusStopped__tcH0J","agentProjectLinks":"Chat-module_agentProjectLinks__KW0Wb","agentProjectLink":"Chat-module_agentProjectLink__FmkLh","agentProjectChange":"Chat-module_agentProjectChange__4Lyg8","agentProjectChangeSummary":"Chat-module_agentProjectChangeSummary__qu418","agentProjectChangeCount":"Chat-module_agentProjectChangeCount__9xuW2","agentProjectChangeCountAdded":"Chat-module_agentProjectChangeCountAdded__pE41j","agentProjectChangeCountRemoved":"Chat-module_agentProjectChangeCountRemoved__xa0-y","agentProjectCommit":"Chat-module_agentProjectCommit__QZ6dK","agentProjectChangedFiles":"Chat-module_agentProjectChangedFiles__yVStZ","agentProjectChangedFile":"Chat-module_agentProjectChangedFile__Xf46Y","agentProjectChangedFilePath":"Chat-module_agentProjectChangedFilePath__2nsAO","agentProjectChangedFileCounts":"Chat-module_agentProjectChangedFileCounts__rQbeL","agentProjectDiff":"Chat-module_agentProjectDiff__FYtgG","agentProjectDiffCode":"Chat-module_agentProjectDiffCode__WsR6G","agentProjectDiffLine":"Chat-module_agentProjectDiffLine__hHaES","agentProjectDiffLineAdded":"Chat-module_agentProjectDiffLineAdded__yOyL0","agentProjectDiffLineRemoved":"Chat-module_agentProjectDiffLineRemoved__P97hq","agentProjectDiffLineHunk":"Chat-module_agentProjectDiffLineHunk__cq-md","agentProjectDiffLineMeta":"Chat-module_agentProjectDiffLineMeta__j9MVq","agentProjectDiffTruncated":"Chat-module_agentProjectDiffTruncated__dUwJs","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","toolCallClockPanel":"Chat-module_toolCallClockPanel__h4xZd","toolCallClockLabels":"Chat-module_toolCallClockLabels__KJGxe","toolCallClockPrimary":"Chat-module_toolCallClockPrimary__StLQ8","toolCallClockSecondary":"Chat-module_toolCallClockSecondary__O4WaT","toolCallClockMeta":"Chat-module_toolCallClockMeta__aObb7","timeoutToolSummary":"Chat-module_timeoutToolSummary__kPPvu","timeoutToolPrimarySentence":"Chat-module_timeoutToolPrimarySentence__pQfLn","timeoutToolSecondarySentence":"Chat-module_timeoutToolSecondarySentence__iH5Uc","timeoutToolActionRow":"Chat-module_timeoutToolActionRow__occir","timeoutToolActionButton":"Chat-module_timeoutToolActionButton__8yz0R","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationIframeLoading":"Chat-module_citationIframeLoading__y5VW9","citationScreenshotFallback":"Chat-module_citationScreenshotFallback__jxfJX","citationScreenshotImage":"Chat-module_citationScreenshotImage__hXjC7","citationScreenshotLink":"Chat-module_citationScreenshotLink__NHvbE","liveBrowserPreview":"Chat-module_liveBrowserPreview__D94Kt","liveBrowserPreviewToolbar":"Chat-module_liveBrowserPreviewToolbar__nFgSV","liveBrowserPreviewToolbarButton":"Chat-module_liveBrowserPreviewToolbarButton__R-ZXl","liveBrowserPreviewZoomLabel":"Chat-module_liveBrowserPreviewZoomLabel__PbrV1","liveBrowserPreviewToolbarCloseButton":"Chat-module_liveBrowserPreviewToolbarCloseButton__gcsb0","liveBrowserPreviewUrlForm":"Chat-module_liveBrowserPreviewUrlForm__4DSda","liveBrowserPreviewUrlInput":"Chat-module_liveBrowserPreviewUrlInput__AugUm","liveBrowserPreviewStreamArea":"Chat-module_liveBrowserPreviewStreamArea__aIhQx","liveBrowserPreviewStreamImage":"Chat-module_liveBrowserPreviewStreamImage__bpTj3","liveBrowserPreviewConnecting":"Chat-module_liveBrowserPreviewConnecting__8Gn40","liveBrowserPreviewOverlay":"Chat-module_liveBrowserPreviewOverlay__eheiG","liveBrowserPreviewOverlayButton":"Chat-module_liveBrowserPreviewOverlayButton__o9SNO","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09","progressPanel":"Chat-module_progressPanel__9M8h9","progressPanelTitle":"Chat-module_progressPanelTitle__rBdoY","progressPanelSection":"Chat-module_progressPanelSection__F3xUF","progressPanelSectionLabel":"Chat-module_progressPanelSectionLabel__aTPgr","progressPanelSectionBody":"Chat-module_progressPanelSectionBody__Z7zX0","progressPanelList":"Chat-module_progressPanelList__PHFeP","progressPanelListItem":"Chat-module_progressPanelListItem__7v9jN","progressPanelListBullet":"Chat-module_progressPanelListBullet__Tzvi7","progressPanelItemSpinner":"Chat-module_progressPanelItemSpinner__oJ6Az","progressPanelSpinner":"Chat-module_progressPanelSpinner__pzxP2","progressPanelItemCompleted":"Chat-module_progressPanelItemCompleted__7bJhG","progressPanelItemText":"Chat-module_progressPanelItemText__tZPIs"};
|
|
22989
23337
|
styleInject(css_248z$7);
|
|
22990
23338
|
|
|
22991
23339
|
/**
|
|
@@ -24385,6 +24733,7 @@ const MARKDOWN_SANITIZER_ALLOWED_TAGS = [
|
|
|
24385
24733
|
'b',
|
|
24386
24734
|
'blockquote',
|
|
24387
24735
|
'br',
|
|
24736
|
+
'button',
|
|
24388
24737
|
'code',
|
|
24389
24738
|
'del',
|
|
24390
24739
|
'details',
|
|
@@ -24493,6 +24842,24 @@ const MARKDOWN_SANITIZER_ALLOWED_PROTOCOLS = new Set(['http', 'https', 'mailto',
|
|
|
24493
24842
|
* @private utility of `renderMarkdown`
|
|
24494
24843
|
*/
|
|
24495
24844
|
const INLINE_REFERENCE_MENU_OPTION_MARKER_ATTRIBUTE = 'data-promptbook-inline-reference-menu-option';
|
|
24845
|
+
/**
|
|
24846
|
+
* Attribute marking a client action generated for an inline-reference menu.
|
|
24847
|
+
*
|
|
24848
|
+
* @private utility shared with `MarkdownContent`
|
|
24849
|
+
*/
|
|
24850
|
+
const MARKDOWN_INLINE_REFERENCE_MENU_ACTION_ATTRIBUTE = 'data-promptbook-inline-reference-menu-action';
|
|
24851
|
+
/**
|
|
24852
|
+
* Attribute identifying the inline reference which owns a client menu action.
|
|
24853
|
+
*
|
|
24854
|
+
* @private utility shared with `MarkdownContent`
|
|
24855
|
+
*/
|
|
24856
|
+
const MARKDOWN_INLINE_REFERENCE_MENU_ACTION_REFERENCE_ATTRIBUTE = 'data-promptbook-inline-reference-menu-action-reference';
|
|
24857
|
+
/**
|
|
24858
|
+
* Attribute marking a favicon rendered inside an inline-reference chip.
|
|
24859
|
+
*
|
|
24860
|
+
* @private utility shared with `MarkdownContent`
|
|
24861
|
+
*/
|
|
24862
|
+
const MARKDOWN_INLINE_REFERENCE_ICON_ATTRIBUTE = 'data-promptbook-inline-reference-icon';
|
|
24496
24863
|
/**
|
|
24497
24864
|
* Internal `data-*` attributes that Promptbook injects into rendered markdown and must survive sanitization.
|
|
24498
24865
|
*
|
|
@@ -24502,6 +24869,9 @@ const MARKDOWN_SANITIZER_ALLOWED_DATA_ATTRIBUTES = new Set([
|
|
|
24502
24869
|
'data-citation-footnote',
|
|
24503
24870
|
'data-chat-progress-marker',
|
|
24504
24871
|
INLINE_REFERENCE_MENU_OPTION_MARKER_ATTRIBUTE,
|
|
24872
|
+
MARKDOWN_INLINE_REFERENCE_MENU_ACTION_ATTRIBUTE,
|
|
24873
|
+
MARKDOWN_INLINE_REFERENCE_MENU_ACTION_REFERENCE_ATTRIBUTE,
|
|
24874
|
+
MARKDOWN_INLINE_REFERENCE_ICON_ATTRIBUTE,
|
|
24505
24875
|
]);
|
|
24506
24876
|
/**
|
|
24507
24877
|
* Link target that remains safe to preserve in sanitized markdown.
|
|
@@ -24588,13 +24958,53 @@ const DETAILS_PLACEHOLDER_WRAPPED_REGEX = new RegExp(`<p>\\s*(${DETAILS_PLACEHOL
|
|
|
24588
24958
|
*/
|
|
24589
24959
|
const INLINE_REFERENCE_REGEX = /\[\[([^\]\r\n]+?)\]\]/g;
|
|
24590
24960
|
/**
|
|
24591
|
-
*
|
|
24961
|
+
* Prefix for INLINE REFERENCE PLACEHOLDER.
|
|
24962
|
+
*
|
|
24963
|
+
* @private utility of `renderMarkdown`
|
|
24964
|
+
*/
|
|
24965
|
+
const INLINE_REFERENCE_PLACEHOLDER_PREFIX = '@@PROMPTBOOK_INLINE_REFERENCE_PLACEHOLDER__';
|
|
24966
|
+
/**
|
|
24967
|
+
* Pattern matching INLINE REFERENCE PLACEHOLDER.
|
|
24968
|
+
*
|
|
24969
|
+
* @private utility of `renderMarkdown`
|
|
24970
|
+
*/
|
|
24971
|
+
const INLINE_REFERENCE_PLACEHOLDER_REGEX = new RegExp(`${INLINE_REFERENCE_PLACEHOLDER_PREFIX}(\\d+)__`, 'g');
|
|
24972
|
+
/**
|
|
24973
|
+
* Prefix for markdown text-segment placeholders used while resolving plain-text inline-reference aliases.
|
|
24974
|
+
*
|
|
24975
|
+
* @private utility of `renderMarkdown`
|
|
24976
|
+
*/
|
|
24977
|
+
const MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER_PREFIX = '@@PROMPTBOOK_MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER__';
|
|
24978
|
+
/**
|
|
24979
|
+
* Pattern matching markdown text-segment placeholders.
|
|
24592
24980
|
*
|
|
24593
|
-
*
|
|
24981
|
+
* @private utility of `renderMarkdown`
|
|
24982
|
+
*/
|
|
24983
|
+
const MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER_REGEX = new RegExp(`${MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER_PREFIX}(\\d+)__`, 'g');
|
|
24984
|
+
/**
|
|
24985
|
+
* Pattern matching markdown links and images together with their raw target.
|
|
24986
|
+
*
|
|
24987
|
+
* @private utility of `renderMarkdown`
|
|
24988
|
+
*/
|
|
24989
|
+
const MARKDOWN_LINK_REGEX = /(!?)\[([^\]\r\n]*)\]\(\s*(<[^>\r\n]*>|[^()\s]+)(?:\s+(?:"[^"]*"|'[^']*'))?\s*\)/g;
|
|
24990
|
+
/**
|
|
24991
|
+
* Pattern matching bare `http(s)` URLs written directly into markdown text.
|
|
24992
|
+
*
|
|
24993
|
+
* @private utility of `renderMarkdown`
|
|
24994
|
+
*/
|
|
24995
|
+
const BARE_URL_REGEX = /(^|\s)(https?:\/\/[^\s<>()[\]"']+)/g;
|
|
24996
|
+
/**
|
|
24997
|
+
* Sentence punctuation which trails a bare URL instead of belonging to it.
|
|
24998
|
+
*
|
|
24999
|
+
* @private utility of `renderMarkdown`
|
|
25000
|
+
*/
|
|
25001
|
+
const BARE_URL_TRAILING_PUNCTUATION_REGEX = /[.,;:!?]+$/;
|
|
25002
|
+
/**
|
|
25003
|
+
* Pattern splitting one URL into its scheme, host and remaining part.
|
|
24594
25004
|
*
|
|
24595
25005
|
* @private utility of `renderMarkdown`
|
|
24596
25006
|
*/
|
|
24597
|
-
const
|
|
25007
|
+
const ABSOLUTE_URL_REGEX = /^[a-z][a-z0-9+.-]*:\/\/([^/?#]*)(.*)$/i;
|
|
24598
25008
|
/**
|
|
24599
25009
|
* Collection of math delimiter definitions.
|
|
24600
25010
|
*/
|
|
@@ -24819,12 +25229,11 @@ const CHAT_MARKDOWN_CONVERTER = createChatMarkdownConverter();
|
|
|
24819
25229
|
* outer `<details>` and optional `<summary>` markup untouched.
|
|
24820
25230
|
*
|
|
24821
25231
|
* @param detailsBlock - Raw `<details>...</details>` HTML captured from markdown.
|
|
24822
|
-
* @param options - Markdown rendering options to reuse for the details body.
|
|
24823
25232
|
* @returns `<details>` HTML whose body has been converted from markdown to HTML.
|
|
24824
25233
|
*
|
|
24825
25234
|
* @private utility of `renderMarkdown`
|
|
24826
25235
|
*/
|
|
24827
|
-
function renderDetailsBlock(detailsBlock
|
|
25236
|
+
function renderDetailsBlock(detailsBlock) {
|
|
24828
25237
|
var _a, _b;
|
|
24829
25238
|
const openTagMatch = detailsBlock.match(/^<details\b[^>]*>/i);
|
|
24830
25239
|
const closeTagMatch = detailsBlock.match(/<\/details\s*>$/i);
|
|
@@ -24837,7 +25246,7 @@ function renderDetailsBlock(detailsBlock, options) {
|
|
|
24837
25246
|
const summaryMatch = innerContent.match(/^(\s*<summary\b[^>]*>[\s\S]*?<\/summary\s*>)([\s\S]*)$/i);
|
|
24838
25247
|
const summaryHtml = (_a = summaryMatch === null || summaryMatch === void 0 ? void 0 : summaryMatch[1]) !== null && _a !== void 0 ? _a : '';
|
|
24839
25248
|
const bodyMarkdown = ((_b = summaryMatch === null || summaryMatch === void 0 ? void 0 : summaryMatch[2]) !== null && _b !== void 0 ? _b : innerContent);
|
|
24840
|
-
const renderedBody = renderMarkdown(bodyMarkdown
|
|
25249
|
+
const renderedBody = renderMarkdown(bodyMarkdown);
|
|
24841
25250
|
return `${openTag}${summaryHtml}${renderedBody}${closeTag}`;
|
|
24842
25251
|
}
|
|
24843
25252
|
/**
|
|
@@ -24869,22 +25278,52 @@ function maskMarkdownCodeSegments(markdown) {
|
|
|
24869
25278
|
},
|
|
24870
25279
|
};
|
|
24871
25280
|
}
|
|
25281
|
+
/**
|
|
25282
|
+
* Masks markdown links, images and bare URLs while plain-text reference aliases are resolved.
|
|
25283
|
+
*
|
|
25284
|
+
* A matching display name inside an unrelated link label must keep that original link instead of
|
|
25285
|
+
* producing a nested chip inside its anchor.
|
|
25286
|
+
*
|
|
25287
|
+
* @param markdown - Markdown without code segments.
|
|
25288
|
+
* @returns Masked markdown and a restore helper.
|
|
25289
|
+
*
|
|
25290
|
+
* @private utility of `renderMarkdown`
|
|
25291
|
+
*/
|
|
25292
|
+
function maskMarkdownLinksAndBareUrls(markdown) {
|
|
25293
|
+
const segments = [];
|
|
25294
|
+
const addPlaceholder = (segment) => {
|
|
25295
|
+
const placeholder = `${MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER_PREFIX}${segments.length}__`;
|
|
25296
|
+
segments.push(segment);
|
|
25297
|
+
return placeholder;
|
|
25298
|
+
};
|
|
25299
|
+
MARKDOWN_LINK_REGEX.lastIndex = 0;
|
|
25300
|
+
let masked = markdown.replace(MARKDOWN_LINK_REGEX, (match) => addPlaceholder(match));
|
|
25301
|
+
BARE_URL_REGEX.lastIndex = 0;
|
|
25302
|
+
masked = masked.replace(BARE_URL_REGEX, (_match, leadingWhitespace, rawUrl) => {
|
|
25303
|
+
return `${leadingWhitespace}${addPlaceholder(rawUrl)}`;
|
|
25304
|
+
});
|
|
25305
|
+
return {
|
|
25306
|
+
masked,
|
|
25307
|
+
restore(value) {
|
|
25308
|
+
return value.replace(MARKDOWN_REFERENCE_TEXT_MASK_PLACEHOLDER_REGEX, (_match, index) => { var _a; return (_a = segments[Number(index)]) !== null && _a !== void 0 ? _a : ''; });
|
|
25309
|
+
},
|
|
25310
|
+
};
|
|
25311
|
+
}
|
|
24872
25312
|
/**
|
|
24873
25313
|
* Masks `<details>...</details>` blocks in the markdown source so that Showdown never
|
|
24874
25314
|
* processes their content.
|
|
24875
25315
|
*
|
|
24876
25316
|
* @param markdown - Markdown text that may contain raw HTML `<details>` blocks.
|
|
24877
|
-
* @param options - Markdown rendering options to reuse for the details body.
|
|
24878
25317
|
* @returns Masked markdown and a restore helper that returns `string_html`.
|
|
24879
25318
|
*
|
|
24880
25319
|
* @private utility of `renderMarkdown`
|
|
24881
25320
|
*/
|
|
24882
|
-
function maskDetailsBlocks(markdown
|
|
25321
|
+
function maskDetailsBlocks(markdown) {
|
|
24883
25322
|
const blocks = [];
|
|
24884
25323
|
DETAILS_BLOCK_REGEX.lastIndex = 0;
|
|
24885
25324
|
const masked = markdown.replace(DETAILS_BLOCK_REGEX, (match) => {
|
|
24886
25325
|
const placeholder = `${DETAILS_PLACEHOLDER_PREFIX}${blocks.length}__`;
|
|
24887
|
-
blocks.push(renderDetailsBlock(match
|
|
25326
|
+
blocks.push(renderDetailsBlock(match));
|
|
24888
25327
|
return placeholder;
|
|
24889
25328
|
});
|
|
24890
25329
|
return {
|
|
@@ -24966,6 +25405,17 @@ function escapeHtml$2(value) {
|
|
|
24966
25405
|
function normalizeMarkdownInlineReferenceKey(value) {
|
|
24967
25406
|
return value.trim().toLowerCase();
|
|
24968
25407
|
}
|
|
25408
|
+
/**
|
|
25409
|
+
* Lists all token keys which can identify one inline reference.
|
|
25410
|
+
*
|
|
25411
|
+
* @param reference - Inline reference with its stable key and optional display-name aliases.
|
|
25412
|
+
* @returns Keys recognized inside `[[...]]` tokens.
|
|
25413
|
+
*
|
|
25414
|
+
* @private utility of `renderMarkdown`
|
|
25415
|
+
*/
|
|
25416
|
+
function listMarkdownInlineReferenceKeys(reference) {
|
|
25417
|
+
return [reference.reference, ...(reference.sourceTextAliases || [])];
|
|
25418
|
+
}
|
|
24969
25419
|
/**
|
|
24970
25420
|
* Builds a lookup of inline markdown references keyed by the authored `[[reference]]` text.
|
|
24971
25421
|
*
|
|
@@ -24977,86 +25427,214 @@ function normalizeMarkdownInlineReferenceKey(value) {
|
|
|
24977
25427
|
function createMarkdownInlineReferenceByKey(references) {
|
|
24978
25428
|
const referenceByKey = new Map();
|
|
24979
25429
|
for (const reference of references) {
|
|
24980
|
-
const
|
|
24981
|
-
|
|
24982
|
-
|
|
25430
|
+
for (const referenceKey of listMarkdownInlineReferenceKeys(reference)) {
|
|
25431
|
+
const normalizedReference = normalizeMarkdownInlineReferenceKey(referenceKey);
|
|
25432
|
+
if (!normalizedReference || referenceByKey.has(normalizedReference)) {
|
|
25433
|
+
continue;
|
|
25434
|
+
}
|
|
25435
|
+
referenceByKey.set(normalizedReference, reference);
|
|
24983
25436
|
}
|
|
24984
|
-
referenceByKey.set(normalizedReference, reference);
|
|
24985
25437
|
}
|
|
24986
25438
|
return referenceByKey;
|
|
24987
25439
|
}
|
|
24988
25440
|
/**
|
|
24989
|
-
*
|
|
25441
|
+
* Escapes text before embedding it into a regular expression.
|
|
24990
25442
|
*
|
|
24991
|
-
* @param
|
|
24992
|
-
* @
|
|
24993
|
-
* @returns Whether the href belongs to the source prefix.
|
|
25443
|
+
* @param value - Literal text to match.
|
|
25444
|
+
* @returns Regular-expression-safe text.
|
|
24994
25445
|
*
|
|
24995
25446
|
* @private utility of `renderMarkdown`
|
|
24996
25447
|
*/
|
|
24997
|
-
function
|
|
24998
|
-
|
|
24999
|
-
|
|
25448
|
+
function escapeRegularExpression(value) {
|
|
25449
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
25450
|
+
}
|
|
25451
|
+
/**
|
|
25452
|
+
* Creates non-ambiguous display-name matchers for inline references.
|
|
25453
|
+
*
|
|
25454
|
+
* Longer aliases are matched first so a project named `Prague Map` wins over a project named `Map`.
|
|
25455
|
+
* An alias shared by more than one reference is deliberately ignored instead of linking to an arbitrary project.
|
|
25456
|
+
*
|
|
25457
|
+
* @param references - References available to this markdown render.
|
|
25458
|
+
* @returns Plain-text matchers ordered from longest to shortest alias.
|
|
25459
|
+
*
|
|
25460
|
+
* @private utility of `renderMarkdown`
|
|
25461
|
+
*/
|
|
25462
|
+
function createMarkdownInlineReferenceTextMatchers(references) {
|
|
25463
|
+
const matcherByNormalizedAlias = new Map();
|
|
25464
|
+
for (const reference of references) {
|
|
25465
|
+
for (const sourceTextAliasCandidate of reference.sourceTextAliases || []) {
|
|
25466
|
+
const sourceTextAlias = sourceTextAliasCandidate.trim();
|
|
25467
|
+
const normalizedAlias = normalizeMarkdownInlineReferenceKey(sourceTextAlias);
|
|
25468
|
+
if (!normalizedAlias) {
|
|
25469
|
+
continue;
|
|
25470
|
+
}
|
|
25471
|
+
const existingMatcher = matcherByNormalizedAlias.get(normalizedAlias);
|
|
25472
|
+
if (existingMatcher === undefined) {
|
|
25473
|
+
matcherByNormalizedAlias.set(normalizedAlias, { reference, sourceTextAlias });
|
|
25474
|
+
}
|
|
25475
|
+
else if (existingMatcher !== null && existingMatcher.reference !== reference) {
|
|
25476
|
+
matcherByNormalizedAlias.set(normalizedAlias, null);
|
|
25477
|
+
}
|
|
25478
|
+
}
|
|
25479
|
+
}
|
|
25480
|
+
return Array.from(matcherByNormalizedAlias.values())
|
|
25481
|
+
.filter((matcher) => matcher !== null)
|
|
25482
|
+
.sort((firstMatcher, secondMatcher) => secondMatcher.sourceTextAlias.length - firstMatcher.sourceTextAlias.length ||
|
|
25483
|
+
firstMatcher.sourceTextAlias.localeCompare(secondMatcher.sourceTextAlias));
|
|
25484
|
+
}
|
|
25485
|
+
/**
|
|
25486
|
+
* Creates a regular expression matching one plain-text alias with optional bold markdown around it.
|
|
25487
|
+
*
|
|
25488
|
+
* @param sourceTextAlias - Literal display name to match.
|
|
25489
|
+
* @param isMarkdownFormattingMatched - Whether matching `**alias**` and `__alias__` form.
|
|
25490
|
+
* @returns Unicode-aware whole-text regular expression.
|
|
25491
|
+
*
|
|
25492
|
+
* @private utility of `renderMarkdown`
|
|
25493
|
+
*/
|
|
25494
|
+
function createMarkdownInlineReferenceTextAliasRegex(sourceTextAlias, isMarkdownFormattingMatched) {
|
|
25495
|
+
const escapedAlias = escapeRegularExpression(sourceTextAlias);
|
|
25496
|
+
const boundaryCharacterClass = '\\p{L}\\p{N}_-';
|
|
25497
|
+
const boundaryPattern = `[^${boundaryCharacterClass}]`;
|
|
25498
|
+
const aliasPattern = isMarkdownFormattingMatched ? `(?:\\*\\*|__)${escapedAlias}(?:\\*\\*|__)` : escapedAlias;
|
|
25499
|
+
return new RegExp(`(^|${boundaryPattern})${aliasPattern}(?=$|${boundaryPattern})`, 'giu');
|
|
25500
|
+
}
|
|
25501
|
+
/**
|
|
25502
|
+
* Replaces known project display names in agent markdown with inline-reference placeholders.
|
|
25503
|
+
*
|
|
25504
|
+
* Bold aliases are replaced first so an older message such as `**Prague Murders Map**` becomes one
|
|
25505
|
+
* chip rather than a chip nested inside formatting markup.
|
|
25506
|
+
*
|
|
25507
|
+
* @param markdown - Markdown with code and links already masked.
|
|
25508
|
+
* @param matchers - Non-ambiguous display-name aliases available to this render.
|
|
25509
|
+
* @param createPlaceholder - Renders a matched reference into a placeholder.
|
|
25510
|
+
* @returns Markdown containing inline-reference placeholders.
|
|
25511
|
+
*
|
|
25512
|
+
* @private utility of `renderMarkdown`
|
|
25513
|
+
*/
|
|
25514
|
+
function replaceMarkdownInlineReferenceTextAliases(markdown, matchers, createPlaceholder) {
|
|
25515
|
+
let referencedMarkdown = markdown;
|
|
25516
|
+
for (const matcher of matchers) {
|
|
25517
|
+
for (const isMarkdownFormattingMatched of [true, false]) {
|
|
25518
|
+
const aliasRegex = createMarkdownInlineReferenceTextAliasRegex(matcher.sourceTextAlias, isMarkdownFormattingMatched);
|
|
25519
|
+
referencedMarkdown = referencedMarkdown.replace(aliasRegex, (_match, leadingBoundary) => {
|
|
25520
|
+
return `${leadingBoundary || ''}${createPlaceholder(matcher.reference)}`;
|
|
25521
|
+
});
|
|
25522
|
+
}
|
|
25000
25523
|
}
|
|
25001
|
-
|
|
25002
|
-
return href.startsWith(normalizedSourceHrefPrefix);
|
|
25524
|
+
return referencedMarkdown;
|
|
25003
25525
|
}
|
|
25004
25526
|
/**
|
|
25005
|
-
*
|
|
25527
|
+
* Decodes percent-encoded characters without failing on malformed input.
|
|
25006
25528
|
*
|
|
25007
|
-
* @param
|
|
25008
|
-
* @returns
|
|
25529
|
+
* @param value - Raw URL part.
|
|
25530
|
+
* @returns Decoded value, or the original value when it cannot be decoded.
|
|
25009
25531
|
*
|
|
25010
25532
|
* @private utility of `renderMarkdown`
|
|
25011
25533
|
*/
|
|
25012
|
-
function
|
|
25534
|
+
function decodeUrlPartSafely(value) {
|
|
25013
25535
|
try {
|
|
25014
|
-
return
|
|
25536
|
+
return decodeURIComponent(value);
|
|
25015
25537
|
}
|
|
25016
25538
|
catch (_a) {
|
|
25017
|
-
return
|
|
25539
|
+
return value;
|
|
25018
25540
|
}
|
|
25019
25541
|
}
|
|
25020
25542
|
/**
|
|
25021
|
-
*
|
|
25543
|
+
* Normalizes one URL path so that encoding, casing and trailing slashes do not break matching.
|
|
25022
25544
|
*
|
|
25023
|
-
*
|
|
25024
|
-
*
|
|
25545
|
+
* @param path - Raw path including an optional query and hash.
|
|
25546
|
+
* @returns Comparable path.
|
|
25547
|
+
*
|
|
25548
|
+
* @private utility of `renderMarkdown`
|
|
25549
|
+
*/
|
|
25550
|
+
function normalizeUrlPathForComparison(path) {
|
|
25551
|
+
const pathWithoutQuery = path.split(/[?#]/, 1)[0] || '';
|
|
25552
|
+
return decodeUrlPartSafely(pathWithoutQuery).toLowerCase().replace(/\/+$/, '');
|
|
25553
|
+
}
|
|
25554
|
+
/**
|
|
25555
|
+
* Splits one absolute URL or application path into its comparable parts.
|
|
25025
25556
|
*
|
|
25026
|
-
* @param
|
|
25027
|
-
* @
|
|
25028
|
-
* @returns Whether the href should render as the reference chip.
|
|
25557
|
+
* @param url - Raw link target written in markdown.
|
|
25558
|
+
* @returns Comparable URL parts, or `null` when the value cannot address a reference.
|
|
25029
25559
|
*
|
|
25030
25560
|
* @private utility of `renderMarkdown`
|
|
25031
25561
|
*/
|
|
25032
|
-
function
|
|
25033
|
-
const
|
|
25034
|
-
|
|
25035
|
-
|
|
25036
|
-
|
|
25037
|
-
|
|
25038
|
-
|
|
25039
|
-
|
|
25040
|
-
|
|
25041
|
-
|
|
25042
|
-
|
|
25043
|
-
|
|
25044
|
-
|
|
25045
|
-
|
|
25046
|
-
|
|
25047
|
-
|
|
25562
|
+
function createComparableUrlParts(url) {
|
|
25563
|
+
const trimmedUrl = url
|
|
25564
|
+
.trim()
|
|
25565
|
+
.replace(/^<([\s\S]*)>$/, '$1')
|
|
25566
|
+
.trim();
|
|
25567
|
+
if (trimmedUrl === '') {
|
|
25568
|
+
return null;
|
|
25569
|
+
}
|
|
25570
|
+
const absoluteUrlMatch = trimmedUrl.match(ABSOLUTE_URL_REGEX);
|
|
25571
|
+
if (absoluteUrlMatch) {
|
|
25572
|
+
return {
|
|
25573
|
+
host: absoluteUrlMatch[1].toLowerCase(),
|
|
25574
|
+
path: normalizeUrlPathForComparison(absoluteUrlMatch[2] || ''),
|
|
25575
|
+
};
|
|
25576
|
+
}
|
|
25577
|
+
if (!trimmedUrl.startsWith('/')) {
|
|
25578
|
+
return null;
|
|
25579
|
+
}
|
|
25580
|
+
return {
|
|
25581
|
+
host: '',
|
|
25582
|
+
path: normalizeUrlPathForComparison(trimmedUrl),
|
|
25583
|
+
};
|
|
25584
|
+
}
|
|
25585
|
+
/**
|
|
25586
|
+
* Returns whether one URL points into one reference source prefix.
|
|
25587
|
+
*
|
|
25588
|
+
* @param url - Comparable parts of the link target written in markdown.
|
|
25589
|
+
* @param prefix - Comparable parts of one reference source prefix.
|
|
25590
|
+
* @returns `true` when the URL belongs to the reference.
|
|
25591
|
+
*
|
|
25592
|
+
* @private utility of `renderMarkdown`
|
|
25593
|
+
*/
|
|
25594
|
+
function isUrlWithinReferencePrefix(url, prefix) {
|
|
25595
|
+
if (prefix.host !== '' && prefix.host !== url.host) {
|
|
25596
|
+
return false;
|
|
25597
|
+
}
|
|
25598
|
+
if (prefix.path === '') {
|
|
25599
|
+
// Note: A prefix without a path covers the whole host, a prefix without both would cover everything
|
|
25600
|
+
return prefix.host !== '';
|
|
25601
|
+
}
|
|
25602
|
+
return url.path === prefix.path || url.path.startsWith(`${prefix.path}/`);
|
|
25603
|
+
}
|
|
25604
|
+
/**
|
|
25605
|
+
* Builds matchers for references which can also be written as a markdown link or a bare URL.
|
|
25606
|
+
*
|
|
25607
|
+
* @param references - References available to this markdown render.
|
|
25608
|
+
* @returns Matchers of references declaring at least one usable source prefix.
|
|
25609
|
+
*
|
|
25610
|
+
* @private utility of `renderMarkdown`
|
|
25611
|
+
*/
|
|
25612
|
+
function createMarkdownInlineReferenceHrefMatchers(references) {
|
|
25613
|
+
return references
|
|
25614
|
+
.map((reference) => ({
|
|
25615
|
+
reference,
|
|
25616
|
+
sourceHrefPrefixes: (reference.sourceHrefPrefixes || [])
|
|
25617
|
+
.map((sourceHrefPrefix) => createComparableUrlParts(sourceHrefPrefix))
|
|
25618
|
+
.filter((sourceHrefPrefix) => sourceHrefPrefix !== null),
|
|
25619
|
+
}))
|
|
25620
|
+
.filter((matcher) => matcher.sourceHrefPrefixes.length !== 0);
|
|
25048
25621
|
}
|
|
25049
25622
|
/**
|
|
25050
|
-
* Finds the
|
|
25623
|
+
* Finds the reference which owns one link target.
|
|
25051
25624
|
*
|
|
25052
|
-
* @param
|
|
25053
|
-
* @param
|
|
25054
|
-
* @returns Matching reference or `
|
|
25625
|
+
* @param href - Raw link target written in markdown.
|
|
25626
|
+
* @param matchers - Reference matchers of this markdown render.
|
|
25627
|
+
* @returns Matching reference or `null`.
|
|
25055
25628
|
*
|
|
25056
25629
|
* @private utility of `renderMarkdown`
|
|
25057
25630
|
*/
|
|
25058
|
-
function
|
|
25059
|
-
|
|
25631
|
+
function findMarkdownInlineReferenceForHref(href, matchers) {
|
|
25632
|
+
const urlParts = createComparableUrlParts(href);
|
|
25633
|
+
if (urlParts === null) {
|
|
25634
|
+
return null;
|
|
25635
|
+
}
|
|
25636
|
+
const matcher = matchers.find((candidateMatcher) => candidateMatcher.sourceHrefPrefixes.some((sourceHrefPrefix) => isUrlWithinReferencePrefix(urlParts, sourceHrefPrefix)));
|
|
25637
|
+
return (matcher === null || matcher === void 0 ? void 0 : matcher.reference) || null;
|
|
25060
25638
|
}
|
|
25061
25639
|
/**
|
|
25062
25640
|
* Renders one inline reference as raw HTML that is sanitized by the shared markdown sanitizer.
|
|
@@ -25071,11 +25649,44 @@ function renderMarkdownInlineReferenceHtml(reference, className) {
|
|
|
25071
25649
|
if (reference.menu) {
|
|
25072
25650
|
return renderMarkdownInlineReferenceMenuHtml(reference, className);
|
|
25073
25651
|
}
|
|
25074
|
-
const escapedClassName = escapeHtml$2(className);
|
|
25652
|
+
const escapedClassName = escapeHtml$2(createMarkdownInlineReferenceClassName(reference, className));
|
|
25075
25653
|
const escapedHref = escapeHtml$2(reference.href);
|
|
25076
25654
|
const escapedLabel = escapeHtml$2(reference.label);
|
|
25077
25655
|
const escapedTitle = escapeHtml$2(reference.title || reference.label);
|
|
25078
|
-
|
|
25656
|
+
const iconHtml = renderMarkdownInlineReferenceIconHtml(reference.icon);
|
|
25657
|
+
return `<a class="${escapedClassName}" href="${escapedHref}" title="${escapedTitle}">${iconHtml}<span>${escapedLabel}</span></a>`;
|
|
25658
|
+
}
|
|
25659
|
+
/**
|
|
25660
|
+
* Adds the icon marker class only to references which provide icon metadata.
|
|
25661
|
+
*
|
|
25662
|
+
* @param reference - Inline reference being rendered.
|
|
25663
|
+
* @param className - Base chip class name.
|
|
25664
|
+
* @returns Complete class name for the rendered chip.
|
|
25665
|
+
*
|
|
25666
|
+
* @private utility of `renderMarkdown`
|
|
25667
|
+
*/
|
|
25668
|
+
function createMarkdownInlineReferenceClassName(reference, className) {
|
|
25669
|
+
return reference.icon ? `${className} inlineReferenceChip--with-icon` : className;
|
|
25670
|
+
}
|
|
25671
|
+
/**
|
|
25672
|
+
* Renders one inline-reference favicon with a text fallback.
|
|
25673
|
+
*
|
|
25674
|
+
* @param icon - Optional icon metadata.
|
|
25675
|
+
* @returns Safe icon markup, or an empty string when no icon is configured.
|
|
25676
|
+
*
|
|
25677
|
+
* @private utility of `renderMarkdown`
|
|
25678
|
+
*/
|
|
25679
|
+
function renderMarkdownInlineReferenceIconHtml(icon) {
|
|
25680
|
+
if (!icon) {
|
|
25681
|
+
return '';
|
|
25682
|
+
}
|
|
25683
|
+
const escapedFallbackText = escapeHtml$2(icon.fallbackText);
|
|
25684
|
+
const fallbackHtml = `<span class="inlineReferenceIconFallback">${escapedFallbackText}</span>`;
|
|
25685
|
+
if (!icon.src) {
|
|
25686
|
+
return `<span class="inlineReferenceIcon" aria-hidden="true">${fallbackHtml}</span>`;
|
|
25687
|
+
}
|
|
25688
|
+
const escapedSrc = escapeHtml$2(icon.src);
|
|
25689
|
+
return `<span class="inlineReferenceIcon" aria-hidden="true">${fallbackHtml}<img ${MARKDOWN_INLINE_REFERENCE_ICON_ATTRIBUTE} src="${escapedSrc}" alt=""></span>`;
|
|
25079
25690
|
}
|
|
25080
25691
|
/**
|
|
25081
25692
|
* Renders one inline reference with an expandable menu as raw HTML sanitized by the markdown sanitizer.
|
|
@@ -25091,27 +25702,36 @@ function renderMarkdownInlineReferenceMenuHtml(reference, className) {
|
|
|
25091
25702
|
if (!menu) {
|
|
25092
25703
|
return renderMarkdownInlineReferenceHtml({ ...reference, menu: undefined }, className);
|
|
25093
25704
|
}
|
|
25094
|
-
const escapedClassName = escapeHtml$2(className);
|
|
25705
|
+
const escapedClassName = escapeHtml$2(createMarkdownInlineReferenceClassName(reference, className));
|
|
25095
25706
|
const escapedLabel = escapeHtml$2(reference.label);
|
|
25096
25707
|
const escapedTitle = escapeHtml$2(reference.title || reference.label);
|
|
25097
25708
|
const escapedStatusLabel = escapeHtml$2(menu.status.label);
|
|
25098
25709
|
const statusClassName = menu.status.isActive
|
|
25099
25710
|
? 'inlineReferenceMenuStatus inlineReferenceMenuStatus--active'
|
|
25100
|
-
: 'inlineReferenceMenuStatus';
|
|
25101
|
-
const
|
|
25102
|
-
|
|
25711
|
+
: 'inlineReferenceMenuStatus inlineReferenceMenuStatus--inactive';
|
|
25712
|
+
const iconHtml = renderMarkdownInlineReferenceIconHtml(reference.icon);
|
|
25713
|
+
const optionsHtml = menu.options
|
|
25714
|
+
.map((option) => renderMarkdownInlineReferenceMenuOptionHtml(reference, option))
|
|
25715
|
+
.join('');
|
|
25716
|
+
return `<details class="${escapedClassName}" title="${escapedTitle}"><summary>${iconHtml}<span>${escapedLabel}</span><span class="${statusClassName}" title="${escapedStatusLabel}"></span></summary><div><span class="${statusClassName}">${escapedStatusLabel}</span>${optionsHtml}</div></details>`;
|
|
25103
25717
|
}
|
|
25104
25718
|
/**
|
|
25105
25719
|
* Renders one option in an expandable markdown inline reference menu.
|
|
25106
25720
|
*
|
|
25721
|
+
* @param reference - Inline reference which owns the option.
|
|
25107
25722
|
* @param option - Menu option definition.
|
|
25108
25723
|
* @returns HTML anchor or disabled label markup.
|
|
25109
25724
|
*
|
|
25110
25725
|
* @private utility of `renderMarkdown`
|
|
25111
25726
|
*/
|
|
25112
|
-
function renderMarkdownInlineReferenceMenuOptionHtml(option) {
|
|
25727
|
+
function renderMarkdownInlineReferenceMenuOptionHtml(reference, option) {
|
|
25113
25728
|
const escapedLabel = escapeHtml$2(option.label);
|
|
25114
25729
|
const escapedTitle = escapeHtml$2(option.title || option.label);
|
|
25730
|
+
if (option.action) {
|
|
25731
|
+
const escapedActionId = escapeHtml$2(option.action.id);
|
|
25732
|
+
const escapedReference = escapeHtml$2(reference.reference);
|
|
25733
|
+
return `<button type="button" ${MARKDOWN_INLINE_REFERENCE_MENU_ACTION_ATTRIBUTE}="${escapedActionId}" ${MARKDOWN_INLINE_REFERENCE_MENU_ACTION_REFERENCE_ATTRIBUTE}="${escapedReference}" class="inlineReferenceMenuOption" title="${escapedTitle}">${escapedLabel}</button>`;
|
|
25734
|
+
}
|
|
25115
25735
|
if (option.href === null) {
|
|
25116
25736
|
return `<span class="inlineReferenceMenuOption inlineReferenceMenuOption--disabled" title="${escapedTitle}">${escapedLabel}</span>`;
|
|
25117
25737
|
}
|
|
@@ -25119,37 +25739,114 @@ function renderMarkdownInlineReferenceMenuOptionHtml(option) {
|
|
|
25119
25739
|
return `<a ${INLINE_REFERENCE_MENU_OPTION_MARKER_ATTRIBUTE} class="inlineReferenceMenuOption" href="${escapedHref}" title="${escapedTitle}" target="${MARKDOWN_SANITIZER_NEW_TAB_TARGET}" rel="noopener noreferrer">${escapedLabel}</a>`;
|
|
25120
25740
|
}
|
|
25121
25741
|
/**
|
|
25122
|
-
* Replaces known `[[reference]]` tokens with
|
|
25742
|
+
* Replaces known `[[reference]]` tokens with chip placeholders while leaving unknown tokens unchanged.
|
|
25123
25743
|
*
|
|
25124
25744
|
* @param markdown - Markdown content after code masking.
|
|
25125
|
-
* @param
|
|
25126
|
-
* @
|
|
25745
|
+
* @param references - References available to this markdown render.
|
|
25746
|
+
* @param createPlaceholder - Renders one matched reference into a placeholder.
|
|
25747
|
+
* @returns Markdown with known reference tokens replaced by placeholders.
|
|
25127
25748
|
*
|
|
25128
25749
|
* @private utility of `renderMarkdown`
|
|
25129
25750
|
*/
|
|
25130
|
-
function
|
|
25131
|
-
const references = options === null || options === void 0 ? void 0 : options.inlineReferences;
|
|
25132
|
-
const className = (options === null || options === void 0 ? void 0 : options.inlineReferenceClassName) || DEFAULT_INLINE_REFERENCE_CLASS_NAME;
|
|
25133
|
-
if (!references || references.length === 0) {
|
|
25134
|
-
return markdown;
|
|
25135
|
-
}
|
|
25751
|
+
function replaceMarkdownInlineReferenceTokens(markdown, references, createPlaceholder) {
|
|
25136
25752
|
const referenceByKey = createMarkdownInlineReferenceByKey(references);
|
|
25137
25753
|
if (referenceByKey.size === 0) {
|
|
25138
25754
|
return markdown;
|
|
25139
25755
|
}
|
|
25140
|
-
|
|
25756
|
+
return markdown.replace(INLINE_REFERENCE_REGEX, (match, rawReference) => {
|
|
25141
25757
|
const reference = referenceByKey.get(normalizeMarkdownInlineReferenceKey(rawReference));
|
|
25142
|
-
return reference ?
|
|
25758
|
+
return reference ? createPlaceholder(reference) : match;
|
|
25143
25759
|
});
|
|
25144
|
-
|
|
25145
|
-
|
|
25760
|
+
}
|
|
25761
|
+
/**
|
|
25762
|
+
* Replaces markdown links pointing to a known reference with chip placeholders.
|
|
25763
|
+
*
|
|
25764
|
+
* Images keep their original markdown so that pictures served by a reference stay visible.
|
|
25765
|
+
*
|
|
25766
|
+
* @param markdown - Markdown content after code masking.
|
|
25767
|
+
* @param matchers - Reference matchers of this markdown render.
|
|
25768
|
+
* @param createPlaceholder - Renders one matched reference into a placeholder.
|
|
25769
|
+
* @returns Markdown with known reference links replaced by placeholders.
|
|
25770
|
+
*
|
|
25771
|
+
* @private utility of `renderMarkdown`
|
|
25772
|
+
*/
|
|
25773
|
+
function replaceMarkdownInlineReferenceLinks(markdown, matchers, createPlaceholder) {
|
|
25774
|
+
return markdown.replace(MARKDOWN_LINK_REGEX, (match, imageMarker, _label, rawHref) => {
|
|
25775
|
+
if (imageMarker !== '') {
|
|
25146
25776
|
return match;
|
|
25147
25777
|
}
|
|
25148
|
-
const
|
|
25149
|
-
|
|
25150
|
-
|
|
25778
|
+
const reference = findMarkdownInlineReferenceForHref(rawHref, matchers);
|
|
25779
|
+
return reference ? createPlaceholder(reference) : match;
|
|
25780
|
+
});
|
|
25781
|
+
}
|
|
25782
|
+
/**
|
|
25783
|
+
* Replaces bare URLs of known references with chip placeholders.
|
|
25784
|
+
*
|
|
25785
|
+
* @param markdown - Markdown content after reference links were replaced.
|
|
25786
|
+
* @param matchers - Reference matchers of this markdown render.
|
|
25787
|
+
* @param createPlaceholder - Renders one matched reference into a placeholder.
|
|
25788
|
+
* @returns Markdown with known reference URLs replaced by placeholders.
|
|
25789
|
+
*
|
|
25790
|
+
* @private utility of `renderMarkdown`
|
|
25791
|
+
*/
|
|
25792
|
+
function replaceMarkdownInlineReferenceBareUrls(markdown, matchers, createPlaceholder) {
|
|
25793
|
+
return markdown.replace(BARE_URL_REGEX, (match, leadingWhitespace, rawUrl) => {
|
|
25794
|
+
var _a;
|
|
25795
|
+
const trailingPunctuation = ((_a = rawUrl.match(BARE_URL_TRAILING_PUNCTUATION_REGEX)) === null || _a === void 0 ? void 0 : _a[0]) || '';
|
|
25796
|
+
const url = rawUrl.slice(0, rawUrl.length - trailingPunctuation.length);
|
|
25797
|
+
const reference = findMarkdownInlineReferenceForHref(url, matchers);
|
|
25798
|
+
return reference ? `${leadingWhitespace}${createPlaceholder(reference)}${trailingPunctuation}` : match;
|
|
25151
25799
|
});
|
|
25152
25800
|
}
|
|
25801
|
+
/**
|
|
25802
|
+
* Restores chips which replaced references during the reference passes.
|
|
25803
|
+
*
|
|
25804
|
+
* @param markdown - Markdown containing reference placeholders.
|
|
25805
|
+
* @param renderedChips - Chip HTML indexed by placeholder number.
|
|
25806
|
+
* @returns Markdown with inline references rendered as HTML chips.
|
|
25807
|
+
*
|
|
25808
|
+
* @private utility of `renderMarkdown`
|
|
25809
|
+
*/
|
|
25810
|
+
function restoreMarkdownInlineReferenceChips(markdown, renderedChips) {
|
|
25811
|
+
return markdown.replace(INLINE_REFERENCE_PLACEHOLDER_REGEX, (_match, index) => { var _a; return (_a = renderedChips[Number(index)]) !== null && _a !== void 0 ? _a : ''; });
|
|
25812
|
+
}
|
|
25813
|
+
/**
|
|
25814
|
+
* Replaces known `[[reference]]` tokens, reference links and bare reference URLs with link chips.
|
|
25815
|
+
*
|
|
25816
|
+
* Every matched reference is first replaced by a placeholder so that the rendered chip HTML is
|
|
25817
|
+
* never processed again by a later pass.
|
|
25818
|
+
*
|
|
25819
|
+
* @param markdown - Markdown content after code masking.
|
|
25820
|
+
* @param options - Markdown render options.
|
|
25821
|
+
* @returns Markdown with known inline references rendered as HTML chips.
|
|
25822
|
+
*
|
|
25823
|
+
* @private utility of `renderMarkdown`
|
|
25824
|
+
*/
|
|
25825
|
+
function applyMarkdownInlineReferences(markdown, options) {
|
|
25826
|
+
const references = options === null || options === void 0 ? void 0 : options.inlineReferences;
|
|
25827
|
+
const className = (options === null || options === void 0 ? void 0 : options.inlineReferenceClassName) || DEFAULT_INLINE_REFERENCE_CLASS_NAME;
|
|
25828
|
+
if (!references || references.length === 0) {
|
|
25829
|
+
return markdown;
|
|
25830
|
+
}
|
|
25831
|
+
const renderedChips = [];
|
|
25832
|
+
const createPlaceholder = (reference) => {
|
|
25833
|
+
const placeholder = `${INLINE_REFERENCE_PLACEHOLDER_PREFIX}${renderedChips.length}__`;
|
|
25834
|
+
renderedChips.push(renderMarkdownInlineReferenceHtml(reference, className));
|
|
25835
|
+
return placeholder;
|
|
25836
|
+
};
|
|
25837
|
+
const hrefMatchers = createMarkdownInlineReferenceHrefMatchers(references);
|
|
25838
|
+
let referencedMarkdown = replaceMarkdownInlineReferenceTokens(markdown, references, createPlaceholder);
|
|
25839
|
+
if (hrefMatchers.length !== 0) {
|
|
25840
|
+
referencedMarkdown = replaceMarkdownInlineReferenceLinks(referencedMarkdown, hrefMatchers, createPlaceholder);
|
|
25841
|
+
referencedMarkdown = replaceMarkdownInlineReferenceBareUrls(referencedMarkdown, hrefMatchers, createPlaceholder);
|
|
25842
|
+
}
|
|
25843
|
+
const textMatchers = createMarkdownInlineReferenceTextMatchers(references);
|
|
25844
|
+
if (textMatchers.length !== 0) {
|
|
25845
|
+
const { masked: markdownWithMaskedLinksAndUrls, restore: restoreLinksAndUrls } = maskMarkdownLinksAndBareUrls(referencedMarkdown);
|
|
25846
|
+
referencedMarkdown = restoreLinksAndUrls(replaceMarkdownInlineReferenceTextAliases(markdownWithMaskedLinksAndUrls, textMatchers, createPlaceholder));
|
|
25847
|
+
}
|
|
25848
|
+
return restoreMarkdownInlineReferenceChips(referencedMarkdown, renderedChips);
|
|
25849
|
+
}
|
|
25153
25850
|
/**
|
|
25154
25851
|
* Loads KaTeX CSS in browser environments that need to display math output.
|
|
25155
25852
|
*
|
|
@@ -25186,7 +25883,7 @@ function renderMarkdown(markdown, options) {
|
|
|
25186
25883
|
const converter = options ? createChatMarkdownConverter(options) : CHAT_MARKDOWN_CONVERTER;
|
|
25187
25884
|
try {
|
|
25188
25885
|
const normalizedMarkdown = normalizeMarkdownSublists(markdown);
|
|
25189
|
-
const { masked: maskedMarkdown, restore: restoreDetails } = maskDetailsBlocks(normalizedMarkdown
|
|
25886
|
+
const { masked: maskedMarkdown, restore: restoreDetails } = maskDetailsBlocks(normalizedMarkdown);
|
|
25190
25887
|
const { masked: codeMaskedMarkdown, restore: restoreCode } = maskMarkdownCodeSegments(maskedMarkdown);
|
|
25191
25888
|
const referencedMarkdown = applyMarkdownInlineReferences(codeMaskedMarkdown, options);
|
|
25192
25889
|
const inlineReferenceMarkdown = restoreCode(referencedMarkdown);
|
|
@@ -27498,7 +28195,7 @@ function CodeBlock({ code, language, className, onCreateAgent, theme = 'LIGHT' }
|
|
|
27498
28195
|
} })] }));
|
|
27499
28196
|
}
|
|
27500
28197
|
|
|
27501
|
-
var css_248z$5 = ".MarkdownContent-module_MarkdownContent__2JuyX{--md-text-color:var(--chat-md-text-color,inherit);--md-muted-color:var(--chat-md-muted-color,currentColor);--md-link-color:var(--chat-md-link-color,#2563eb);--md-heading-color:var(--chat-heading-text-color,var(--md-text-color));--md-heading-font-family:var(\n --chat-md-heading-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-body-font-family:var(\n --chat-md-body-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-code-font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace;--md-inline-code-bg:var(--chat-md-inline-code-bg,rgba(15,23,42,.08));--md-inline-code-border:var(--chat-md-inline-code-border,rgba(15,23,42,.12));--md-inline-code-color:var(--chat-md-inline-code-color,var(--md-text-color));--md-blockquote-bg:var(--chat-md-blockquote-bg,rgba(248,250,252,.92));--md-blockquote-border:var(--chat-md-blockquote-border,rgba(59,130,246,.35));--md-table-bg:var(--chat-md-table-bg,rgba(248,250,252,.92));--md-table-row-alt-bg:var(--chat-md-table-row-alt-bg,rgba(241,245,249,.9));--md-table-head-bg:var(--chat-md-table-head-bg,rgba(226,232,240,.95));--md-table-border:var(--chat-md-table-border,rgba(148,163,184,.36));--md-citation-bg:var(--chat-md-citation-bg,rgba(59,130,246,.14));--md-citation-color:var(--chat-md-citation-color,#1d4ed8);color:var(--md-text-color);font-family:var(--md-body-font-family);font-size:inherit;letter-spacing:.002em;line-height:1.65}.MarkdownContent-module_MarkdownContent__2JuyX>:first-child{margin-top:0!important}.MarkdownContent-module_MarkdownContent__2JuyX>:last-child{margin-bottom:0!important}.MarkdownContent-module_MarkdownContent__2JuyX :is(h1,h2,h3,h4,h5,h6){text-wrap:balance;color:var(--md-heading-color);font-family:var(--md-heading-font-family);font-weight:600;letter-spacing:.01em;line-height:1.24;margin:1.4em 0 .55em;position:relative}.MarkdownContent-module_MarkdownContent__2JuyX h1{font-size:1.52rem}.MarkdownContent-module_MarkdownContent__2JuyX h2{font-size:1.4rem}.MarkdownContent-module_MarkdownContent__2JuyX h3{font-size:1.26rem}.MarkdownContent-module_MarkdownContent__2JuyX h4{font-size:1.14rem}.MarkdownContent-module_MarkdownContent__2JuyX h5{font-size:1.04rem}.MarkdownContent-module_MarkdownContent__2JuyX h6{font-size:.98rem}.MarkdownContent-module_MarkdownContent__2JuyX p{text-wrap:pretty;margin:0 0 .9em}.MarkdownContent-module_MarkdownContent__2JuyX p:empty{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(ul,ol){display:grid;gap:.35em;margin:.65em 0 1em;padding-inline-start:1.35rem}.MarkdownContent-module_MarkdownContent__2JuyX ul{list-style:disc}.MarkdownContent-module_MarkdownContent__2JuyX ol{list-style:decimal}.MarkdownContent-module_MarkdownContent__2JuyX li{line-height:1.58}.MarkdownContent-module_MarkdownContent__2JuyX li>:is(ul,ol){margin-bottom:0;margin-top:.45em}.MarkdownContent-module_MarkdownContent__2JuyX ul:has(>li>[data-chat-progress-marker]){list-style:none;padding-inline-start:0}.MarkdownContent-module_MarkdownContent__2JuyX ul:has(>li>[data-chat-progress-marker])>li{list-style:none}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker]{border-radius:999px;color:var(--md-link-color);display:inline-flex;height:1rem;margin-right:.58rem;transform-origin:center;vertical-align:text-bottom;width:1rem}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=pending]{animation:MarkdownContent-module_chatProgressMarkerSpin__TpoKr .85s linear infinite;border:2px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentcolor;box-sizing:border-box}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=completed]{align-items:center;background:color-mix(in srgb,currentColor 12%,transparent);border:2px solid;box-sizing:border-box;justify-content:center}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=completed]:before{border-bottom:2px solid;border-right:2px solid;box-sizing:border-box;content:\"\";display:block;height:.5rem;margin-top:-.06rem;transform:rotate(45deg);width:.26rem}@keyframes MarkdownContent-module_chatProgressMarkerSpin__TpoKr{to{transform:rotate(1turn)}}.MarkdownContent-module_MarkdownContent__2JuyX a{color:var(--md-link-color);text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:1.4px;text-underline-offset:.16em;transition:opacity .2s ease,text-decoration-thickness .2s ease}.MarkdownContent-module_MarkdownContent__2JuyX a:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a:hover{opacity:.92;text-decoration-thickness:2px}.MarkdownContent-module_MarkdownContent__2JuyX a.MarkdownContent-module_inlineReferenceChip__o-WIB,.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary{align-items:center;background:color-mix(in srgb,var(--md-link-color) 9%,hsla(0,0%,100%,.9));border:1px solid color-mix(in srgb,var(--md-link-color) 28%,rgba(148,163,184,.45));border-radius:8px;box-shadow:0 1px 2px rgba(15,23,42,.08);color:var(--md-link-color);display:inline-flex;font-size:.92em;font-weight:650;gap:.42em;line-height:1.35;max-width:100%;padding:.16em .58em;text-decoration:none;vertical-align:baseline;white-space:nowrap}.MarkdownContent-module_MarkdownContent__2JuyX a.MarkdownContent-module_inlineReferenceChip__o-WIB{margin:0 .08em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB{display:inline-block;margin:0 .08em;max-width:100%;position:relative;vertical-align:baseline}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary{cursor:pointer;list-style:none}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary::-webkit-details-marker{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):before{border:1.8px solid;border-radius:.16em;box-sizing:border-box;content:\"\";display:inline-block;flex:0 0 auto;height:.62em;opacity:.86;transform:translateY(.03em);width:.9em}.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):hover{background:color-mix(in srgb,var(--md-link-color) 14%,hsla(0,0%,100%,.94));border-color:color-mix(in srgb,var(--md-link-color) 52%,rgba(148,163,184,.35));opacity:1}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>div{background:color-mix(in srgb,var(--md-table-bg) 92%,#fff);border:1px solid color-mix(in srgb,var(--md-link-color) 22%,rgba(148,163,184,.45));border-radius:.65rem;box-shadow:0 10px 24px rgba(15,23,42,.16);display:grid;left:0;min-width:15rem;padding:.45rem;position:absolute;top:calc(100% + .45em);z-index:20}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus{align-items:center;color:var(--md-muted-color);display:inline-flex;font-size:.78em;font-weight:650;gap:.38em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus{background:color-mix(in srgb,var(--md-muted-color) 55%,transparent);border-radius:999px;height:.52em;margin-left:.05em;width:.52em}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus--active{color:#047857}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus--active{background:#10b981;box-shadow:0 0 0 .16em color-mix(in srgb,#10b981 20%,transparent)}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus:before{background:currentColor;border-radius:999px;content:\"\";height:.55em;width:.55em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus:before{display:none}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuOption{border-radius:.4rem;color:var(--md-link-color);display:block;font-size:.82em;font-weight:650;line-height:1.35;padding:.45rem .55rem;text-decoration:none}.MarkdownContent-module_MarkdownContent__2JuyX a.inlineReferenceMenuOption:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a.inlineReferenceMenuOption:hover{background:color-mix(in srgb,var(--md-link-color) 10%,transparent);text-decoration:none}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuOption--disabled{color:var(--md-muted-color);cursor:not-allowed}.MarkdownContent-module_MarkdownContent__2JuyX img{border-radius:14px;display:block;height:auto;margin:.95em 0;max-width:100%}.MarkdownContent-module_MarkdownContent__2JuyX blockquote,.MarkdownContent-module_MarkdownContent__2JuyX hr,.MarkdownContent-module_MarkdownContent__2JuyX pre,.MarkdownContent-module_MarkdownContent__2JuyX table{margin:.95em 0}.MarkdownContent-module_MarkdownContent__2JuyX pre{background:transparent;border:none;border-radius:12px;box-shadow:none;display:block;overflow:visible;padding:0}.MarkdownContent-module_MarkdownContent__2JuyX blockquote{background:var(--md-blockquote-bg);border:none;border-left:3px solid var(--md-blockquote-border);border-radius:12px;box-shadow:none;color:var(--md-muted-color);display:block;padding:.72em .96em}.MarkdownContent-module_MarkdownContent__2JuyX blockquote>:last-child{margin-bottom:0}.MarkdownContent-module_MarkdownContent__2JuyX code{background:var(--md-inline-code-bg);border:1px solid var(--md-inline-code-border);border-radius:8px;color:var(--md-inline-code-color);font-family:var(--md-code-font-family);font-size:.88em;line-height:1.45;margin:0;padding:.14em .42em;word-break:break-word}.MarkdownContent-module_MarkdownContent__2JuyX pre code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg{background:#181c23;border:1px solid rgba(148,163,184,.35);border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.28);color:#f8fafc;font-family:var(--md-code-font-family);font-size:14px;line-height:1.6;overflow-x:auto}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX table{background:var(--md-table-bg);border:1px solid var(--md-table-border);border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 8px rgba(15,23,42,.1);color:inherit;font-size:.93em;overflow:hidden;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX td,.MarkdownContent-module_MarkdownContent__2JuyX th{background:none;border-bottom:1px solid var(--md-table-border);color:inherit;padding:.58em .72em;text-align:left;vertical-align:top}.MarkdownContent-module_MarkdownContent__2JuyX th{background:var(--md-table-head-bg);font-weight:600}.MarkdownContent-module_MarkdownContent__2JuyX tr:last-child td{border-bottom:none}.MarkdownContent-module_MarkdownContent__2JuyX tr:nth-child(2n) td{background:var(--md-table-row-alt-bg)}.MarkdownContent-module_MarkdownContent__2JuyX hr{border:none;border-top:1px solid var(--md-table-border);opacity:.8}.MarkdownContent-module_MarkdownContent__2JuyX details{background:color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.3) 18%);border:1px solid var(--md-table-border);border-radius:16px;box-shadow:0 8px 22px rgba(15,23,42,.08);margin:.95em 0;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.MarkdownContent-module_MarkdownContent__2JuyX details:focus-within,.MarkdownContent-module_MarkdownContent__2JuyX details:hover{border-color:color-mix(in srgb,var(--md-link-color) 24%,var(--md-table-border) 76%);box-shadow:0 12px 28px rgba(15,23,42,.12)}.MarkdownContent-module_MarkdownContent__2JuyX details>summary{align-items:center;background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 88%,hsla(0,0%,100%,.85) 12%),color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.7) 18%));color:var(--md-link-color);cursor:pointer;display:flex;font-weight:600;gap:.72rem;list-style:none;padding:.9em 1.05em;transition:background .18s ease,color .18s ease;user-select:none}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:before{border-bottom:2px solid;border-right:2px solid;content:\"\";flex:0 0 auto;height:.62rem;margin-top:-.04rem;opacity:.82;transform:rotate(-45deg);transition:transform .18s ease,opacity .18s ease;width:.62rem}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX details>summary:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 76%,hsla(0,0%,100%,.95) 24%),color-mix(in srgb,var(--md-table-bg) 74%,hsla(0,0%,100%,.82) 26%))}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:focus-visible{outline:2px solid color-mix(in srgb,var(--md-link-color) 52%,transparent);outline-offset:-2px}.MarkdownContent-module_MarkdownContent__2JuyX details>summary::-webkit-details-marker{display:none}.MarkdownContent-module_MarkdownContent__2JuyX details[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--md-table-border) 88%,transparent)}.MarkdownContent-module_MarkdownContent__2JuyX details[open]>summary:before{opacity:1;transform:rotate(45deg)}.MarkdownContent-module_MarkdownContent__2JuyX details>:not(summary){margin-left:1.05em;margin-right:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX details>summary+*{margin-top:.95em}.MarkdownContent-module_MarkdownContent__2JuyX details>:last-child{margin-bottom:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX strong{font-weight:650}.MarkdownContent-module_MarkdownContent__2JuyX em{font-style:italic}.MarkdownContent-module_citationRef__fKqaT,.MarkdownContent-module_citation__11SMw{align-items:center;background:var(--md-citation-bg);border-radius:999px;color:var(--md-citation-color);display:inline-flex;font-size:.74em;font-weight:700;justify-content:center;line-height:1.45;margin:0 .1em;min-width:1.4em;padding:0 .35em;vertical-align:super}.MarkdownContent-module_MarkdownContent__2JuyX sup[data-citation-footnote]{color:currentColor;display:inline;font-size:.72em;font-weight:700;line-height:1;margin:0 .7em 0 .08em;vertical-align:super}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUNJLGlEQUFtRCxDQUNuRCx3REFBMEQsQ0FDMUQsaURBQW1ELENBQ25ELHNFQUF3RSxDQUN4RTs7S0FHQyxDQUNEOztLQUdDLENBQ0QsbUdBQTBHLENBQzFHLG9FQUEwRSxDQUMxRSw0RUFBa0YsQ0FDbEYsNEVBQThFLENBQzlFLHFFQUEyRSxDQUMzRSw0RUFBa0YsQ0FDbEYsMkRBQWlFLENBQ2pFLDBFQUFnRixDQUNoRixxRUFBMkUsQ0FDM0UsbUVBQXlFLENBQ3pFLGdFQUFzRSxDQUN0RSx5REFBMkQsQ0FFM0QsMEJBQTJCLENBQzNCLHNDQUF1QyxDQUN2QyxpQkFBa0IsQ0FFbEIscUJBQXVCLENBRHZCLGdCQUVKLENBRUEsNERBQ0ksc0JBQ0osQ0FFQSwyREFDSSx5QkFDSixDQUVBLHNFQVFJLGlCQUFrQixDQUxsQiw2QkFBOEIsQ0FDOUIseUNBQTBDLENBQzFDLGVBQWdCLENBRWhCLG9CQUFzQixDQUR0QixnQkFBaUIsQ0FKakIsb0JBQXNCLENBRHRCLGlCQVFKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLGtEQUNJLGlCQUNKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxpQkFDSixDQUVBLGtEQUNJLGdCQUNKLENBRUEsaURBRUksZ0JBQWlCLENBRGpCLGVBRUosQ0FFQSx1REFDSSxZQUNKLENBRUEsMERBR0ksWUFBYSxDQUNiLFNBQVcsQ0FIWCxrQkFBb0IsQ0FDcEIsNEJBR0osQ0FFQSxrREFDSSxlQUNKLENBRUEsa0RBQ0ksa0JBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLDZEQUVJLGVBQWdCLENBRGhCLGdCQUVKLENBRUEsdUZBQ0ksZUFBZ0IsQ0FDaEIsc0JBQ0osQ0FFQSwwRkFDSSxlQUNKLENBRUEsMkVBTUksbUJBQW9CLENBQ3BCLDBCQUEyQixDQU4zQixtQkFBb0IsQ0FFcEIsV0FBWSxDQUNaLG1C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QUN0Rix5Q0FDSixDQUVBLCtEQUVJLGtCQUFtQixDQVFuQiwwS0FJQyxDQU5ELDBCQUEyQixDQUgzQixjQUFlLENBSmYsWUFBYSxDQUtiLGVBQWdCLENBSGhCLFVBQVksQ0FNWixlQUFnQixDQUxoQixtQkFBcUIsQ0FXckIsK0NBQW1ELENBUm5ELGdCQVNKLENBRUEsc0VBT0ksdUJBQXFDLENBRHJDLHNCQUFvQyxDQUxwQyxVQUFXLENBR1gsYUFBYyxDQURkLGFBQWUsQ0FFZixrQkFBb0IsQ0FJcEIsV0FBYSxDQURiLHdCQUF5QixDQUV6QixnREFBb0QsQ0FScEQsWUFTSixDQUVBLGtKQUVJLDJLQUtKLENBRUEsNkVBQ0kseUVBQTRFLENBQzVFLG1CQUNKLENBRUEsdUZBQ0ksWUFDSixDQUVBLHFFQUNJLGlGQUNKLENBRUEsNEVBRUksU0FBVSxDQURWLHVCQUVKLENBRUEscUVBQ0ksa0JBQW1CLENBQ25CLG1CQUNKLENBRUEsaUVBQ0ksZ0JBQ0osQ0FFQSxtRUFDSSxvQkFDSixDQUVBLHNEQUNJLGVBQ0osQ0FFQSxrREFDSSxpQkFDSixDQWtCQSxtRkFFSSxrQkFBbUIsQ0FXbkIsZ0NBQWlDLENBTmpDLG1CQUFvQixDQUtwQiw4QkFBK0IsQ0FYL0IsbUJBQW9CLENBT3BCLGVBQWlCLENBQ2pCLGVBQWdCLENBTmhCLHNCQUF1QixDQU92QixnQkFBaUIsQ0FMakIsYUFBZSxDQURmLGVBQWdCLENBRWhCLGVBQWlCLENBS2pCLG9CQUdKLENBRUEsMkVBT0ksa0JBQW1CLENBTm5CLGNBQWUsQ0FFZixlQUFpQixDQUNqQixlQUFnQixDQUNoQixhQUFjLENBSGQscUJBQXdCLENBSXhCLG9CQUVKIiwiZmlsZSI6Ik1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLk1hcmtkb3duQ29udGVudCB7XG4gICAgLS1tZC10ZXh0LWNvbG9yOiB2YXIoLS1jaGF0LW1kLXRleHQtY29sb3IsIGluaGVyaXQpO1xuICAgIC0tbWQtbXV0ZWQtY29sb3I6IHZhcigtLWNoYXQtbWQtbXV0ZWQtY29sb3IsIGN1cnJlbnRDb2xvcik7XG4gICAgLS1tZC1saW5rLWNvbG9yOiB2YXIoLS1jaGF0LW1kLWxpbmstY29sb3IsICMyNTYzZWIpO1xuICAgIC0tbWQtaGVhZGluZy1jb2xvcjogdmFyKC0tY2hhdC1oZWFkaW5nLXRleHQtY29sb3IsIHZhcigtLW1kLXRleHQtY29sb3IpKTtcbiAgICAtLW1kLWhlYWRpbmctZm9udC1mYW1pbHk6IHZhcihcbiAgICAgICAgLS1jaGF0LW1kLWhlYWRpbmctZm9udC1mYW1pbHksXG4gICAgICAgIHZhcigtLWZvbnQtcG9wcGlucywgJ1BvcHBpbnMnLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpXG4gICAgKTtcbiAgICAtLW1kLWJvZHktZm9udC1mYW1pbHk6IHZhcihcbiAgICAgICAgLS1jaGF0LW1kLWJvZHktZm9udC1mYW1pbHksXG4gICAgICAgIHZhcigtLWZvbnQtcG9wcGlucywgJ1BvcHBpbnMnLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpXG4gICAgKTtcbiAgICAtLW1kLWNvZGUtZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1xuICAgIC0tbWQtaW5saW5lLWNvZGUtYmc6IHZhcigtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmcsIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCkpO1xuICAgIC0tbWQtaW5saW5lLWNvZGUtYm9yZGVyOiB2YXIoLS1jaGF0LW1kLWlubGluZS1jb2RlLWJvcmRlciwgcmdiYSgxNSwgMjMsIDQyLCAwLjEyKSk7XG4gICAgLS1tZC1pbmxpbmUtY29kZS1jb2xvcjogdmFyKC0tY2hhdC1tZC1pbmxpbmUtY29kZS1jb2xvciwgdmFyKC0tbWQtdGV4dC1jb2xvcikpO1xuICAgIC0tbWQtYmxvY2txdW90ZS1iZzogdmFyKC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJnLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTIpKTtcbiAgICAtLW1kLWJsb2NrcXVvdGUtYm9yZGVyOiB2YXIoLS1jaGF0LW1kLWJsb2NrcXVvdGUtYm9yZGVyLCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zNSkpO1xuICAgIC0tbWQtdGFibGUtYmc6IHZhcigtLWNoYXQtbWQtdGFibGUtYmcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45MikpO1xuICAgIC0tbWQtdGFibGUtcm93LWFsdC1iZzogdmFyKC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnLCByZ2JhKDI0MSwgMjQ1LCAyNDksIDAuOSkpO1xuICAgIC0tbWQtdGFibGUtaGVhZC1iZzogdmFyKC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnLCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOTUpKTtcbiAgICAtLW1kLXRhYmxlLWJvcmRlcjogdmFyKC0tY2hhdC1tZC10YWJsZS1ib3JkZXIsIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNikpO1xuICAgIC0tbWQtY2l0YXRpb24tYmc6IHZhcigtLWNoYXQtbWQtY2l0YXRpb24tYmcsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE0KSk7XG4gICAgLS1tZC1jaXRhdGlvbi1jb2xvcjogdmFyKC0tY2hhdC1tZC1jaXRhdGlvbi1jb2xvciwgIzFkNGVkOCk7XG5cbiAgICBjb2xvcjogdmFyKC0tbWQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kLWJvZHktZm9udC1mYW1pbHkpO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMDJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uTWFya2Rvd25Db250ZW50ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEuNGVtIDAgMC41NWVtO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1oZWFkaW5nLWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtaGVhZGluZy1mb250LWZhbWlseSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yNDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoMSB7XG4gICAgZm9udC1zaXplOiAxLjUycmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoMyB7XG4gICAgZm9udC1zaXplOiAxLjI2cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGg0IHtcbiAgICBmb250LXNpemU6IDEuMTRyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4wNHJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoNiB7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHAge1xuICAgIG1hcmdpbjogMCAwIDAuOWVtO1xuICAgIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG4uTWFya2Rvd25Db250ZW50IHA6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmlzKHVsLCBvbCkge1xuICAgIG1hcmdpbjogMC42NWVtIDAgMWVtO1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxLjM1cmVtO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAwLjM1ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdWwge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgb2wge1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU4O1xufVxuXG4uTWFya2Rvd25Db250ZW50IGxpID4gOmlzKHVsLCBvbCkge1xuICAgIG1hcmdpbi10b3A6IDAuNDVlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHVsOmhhcyg+IGxpID4gW2RhdGEtY2hhdC1wcm9ncmVzcy1tYXJrZXJdKSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCB1bDpoYXMoPiBsaSA+IFtkYXRhLWNoYXQtcHJvZ3Jlc3MtbWFya2VyXSkgPiBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBbZGF0YS1jaGF0LXByb2dyZXNzLW1hcmtlcl0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNThyZW07XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGNvbG9yOiB2YXIoLS1tZC1saW5rLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgW2RhdGEtY2hhdC1wcm9ncmVzcy1tYXJrZXI9J3BlbmRpbmcnXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDIyJSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICBhbmltYXRpb246IGNoYXRQcm9ncmVzc01hcmtlclNwaW4gMC44NXMgbGluZWFyIGluZmluaXRlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IFtkYXRhLWNoYXQtcHJvZ3Jlc3MtbWFya2VyPSdjb21wbGV0ZWQnXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IFtkYXRhLWNoYXQtcHJvZ3Jlc3MtbWFya2VyPSdjb21wbGV0ZWQnXTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAwLjI2cmVtO1xuICAgIGhlaWdodDogMC41cmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjA2cmVtO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuQGtleWZyYW1lcyBjaGF0UHJvZ3Jlc3NNYXJrZXJTcGluIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uTWFya2Rvd25Db250ZW50IGEge1xuICAgIGNvbG9yOiB2YXIoLS1tZC1saW5rLWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDEuNHB4O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzIDAuMnMgZWFzZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBhOmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCBhOmZvY3VzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDAuOTI7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xufVxuXG4uTWFya2Rvd25Db250ZW50IGEuaW5saW5lUmVmZXJlbmNlQ2hpcCxcbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gc3VtbWFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjQyZW07XG4gICAgcGFkZGluZzogMC4xNmVtIDAuNThlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgMjglLCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNDUpKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDklLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkpO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1saW5rLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDAuOTJlbTtcbiAgICBmb250LXdlaWdodDogNjUwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBhLmlubGluZVJlZmVyZW5jZUNoaXAge1xuICAgIG1hcmdpbjogMCAwLjA4ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMC4wOGVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDppcyhhLmlubGluZVJlZmVyZW5jZUNoaXAsIGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCA+IHN1bW1hcnkpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAwLjllbTtcbiAgICBoZWlnaHQ6IDAuNjJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3JkZXI6IDEuOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjE2ZW07XG4gICAgb3BhY2l0eTogMC44NjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4wM2VtKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6aXMoYS5pbmxpbmVSZWZlcmVuY2VDaGlwLCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5KTpob3Zlcixcbi5NYXJrZG93bkNvbnRlbnQgOmlzKGEuaW5saW5lUmVmZXJlbmNlQ2hpcCwgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gc3VtbWFyeSk6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgNTIlLCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpKTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgMTQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCA+IGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHRvcDogY2FsYygxMDAlICsgMC40NWVtKTtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWluLXdpZHRoOiAxNXJlbTtcbiAgICBwYWRkaW5nOiAwLjQ1cmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSAyMiUsIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40NSkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJnKSA5MiUsIHdoaXRlKTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC4zOGVtO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1tdXRlZC1jb2xvcik7XG4gICAgZm9udC1zaXplOiAwLjc4ZW07XG4gICAgZm9udC13ZWlnaHQ6IDY1MDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMpIHtcbiAgICB3aWR0aDogMC41MmVtO1xuICAgIGhlaWdodDogMC41MmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjA1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLW11dGVkLWNvbG9yKSA1NSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51U3RhdHVzLS1hY3RpdmUpIHtcbiAgICBjb2xvcjogIzA0Nzg1Nztcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMtLWFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQ6ICMxMGI5ODE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4xNmVtIGNvbG9yLW1peChpbiBzcmdiLCAjMTBiOTgxIDIwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAwLjU1ZW07XG4gICAgaGVpZ2h0OiAwLjU1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCA+IHN1bW1hcnkgOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudVN0YXR1cyk6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51T3B0aW9uKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC40NXJlbSAwLjU1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgICBjb2xvcjogdmFyKC0tbWQtbGluay1jb2xvcik7XG4gICAgZm9udC1zaXplOiAwLjgyZW07XG4gICAgZm9udC13ZWlnaHQ6IDY1MDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYTpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVPcHRpb24pOmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCBhOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudU9wdGlvbik6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51T3B0aW9uLS1kaXNhYmxlZCkge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgY29sb3I6IHZhcigtLW1kLW11dGVkLWNvbG9yKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBtYXJnaW46IDAuOTVlbSAwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHByZSxcbi5NYXJrZG93bkNvbnRlbnQgYmxvY2txdW90ZSxcbi5NYXJrZG93bkNvbnRlbnQgdGFibGUsXG4uTWFya2Rvd25Db250ZW50IGhyIHtcbiAgICBtYXJnaW46IDAuOTVlbSAwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHByZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGJsb2NrcXVvdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLW1kLWJsb2NrcXVvdGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtYmxvY2txdW90ZS1iZyk7XG4gICAgY29sb3I6IHZhcigtLW1kLW11dGVkLWNvbG9yKTtcbiAgICBwYWRkaW5nOiAwLjcyZW0gMC45NmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGJsb2NrcXVvdGUgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBjb2RlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4xNGVtIDAuNDJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tZC1pbmxpbmUtY29kZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC1pbmxpbmUtY29kZS1iZyk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kLWNvZGUtZm9udC1mYW1pbHkpO1xuICAgIGZvbnQtc2l6ZTogMC44OGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGNvbG9yOiB2YXIoLS1tZC1pbmxpbmUtY29kZS1jb2xvcik7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwcmUgY29kZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgd29yZC1icmVhazogbm9ybWFsO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgLmNoYXQtY29kZS1ibG9jayB7XG4gICAgYmFja2dyb3VuZDogIzE4MWMyMztcbiAgICBjb2xvcjogI2Y4ZmFmYztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMiwgNiwgMjMsIDAuMjgpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1jb2RlLWZvbnQtZmFtaWx5KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCAuY2hhdC1jb2RlLWJsb2NrIGNvZGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1kLXRhYmxlLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLXRhYmxlLWJnKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEpO1xuICAgIGZvbnQtc2l6ZTogMC45M2VtO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uTWFya2Rvd25Db250ZW50IHRoLFxuLk1hcmtkb3duQ29udGVudCB0ZCB7XG4gICAgcGFkZGluZzogMC41OGVtIDAuNzJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWQtdGFibGUtYm9yZGVyKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtdGFibGUtaGVhZC1iZyk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtdGFibGUtcm93LWFsdC1iZyk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaHIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbWQtdGFibGUtYm9yZGVyKTtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyB7XG4gICAgbWFyZ2luOiAwLjk1ZW0gMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJnKSA4MiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAxOCUpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDIycHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE4cyBlYXNlLCBib3gtc2hhZG93IDAuMThzIGVhc2UsIHRyYW5zZm9ybSAwLjE4cyBlYXNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHM6aG92ZXIsXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHM6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSAyNCUsIHZhcigtLW1kLXRhYmxlLWJvcmRlcikgNzYlKTtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMgPiBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjcycmVtO1xuICAgIHBhZGRpbmc6IDAuOWVtIDEuMDVlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tbWQtbGluay1jb2xvcik7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWhlYWQtYmcpIDg4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSAxMiUpLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtYmcpIDgyJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDE4JSlcbiAgICApO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xOHMgZWFzZSwgY29sb3IgMC4xOHMgZWFzZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMC42MnJlbTtcbiAgICBoZWlnaHQ6IDAuNjJyZW07XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTAuMDRyZW07XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwLjgyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlLCBvcGFjaXR5IDAuMThzIGVhc2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IHN1bW1hcnk6aG92ZXIsXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMgPiBzdW1tYXJ5OmZvY3VzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtaGVhZC1iZykgNzYlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIDI0JSksXG4gICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC10YWJsZS1iZykgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpIDI2JSlcbiAgICApO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMgPiBzdW1tYXJ5OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgNTIlLCB0cmFuc3BhcmVudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtYm9yZGVyKSA4OCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzW29wZW5dID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gOm5vdChzdW1tYXJ5KSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMDVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMDVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gc3VtbWFyeSArICoge1xuICAgIG1hcmdpbi10b3A6IDAuOTVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMDVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNpdGF0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMS40ZW07XG4gICAgbWFyZ2luOiAwIDAuMWVtO1xuICAgIHBhZGRpbmc6IDAgMC4zNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMC43NGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1jaXRhdGlvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtY2l0YXRpb24tYmcpO1xufVxuXG4uY2l0YXRpb25SZWYge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAxLjRlbTtcbiAgICBtYXJnaW46IDAgMC4xZW07XG4gICAgcGFkZGluZzogMCAwLjM1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAwLjc0ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgY29sb3I6IHZhcigtLW1kLWNpdGF0aW9uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC1jaXRhdGlvbi1iZyk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgc3VwW2RhdGEtY2l0YXRpb24tZm9vdG5vdGVdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwIDAuN2VtIDAgMC4wOGVtO1xuICAgIGZvbnQtc2l6ZTogMC43MmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4iXX0= */";
|
|
28198
|
+
var css_248z$5 = ".MarkdownContent-module_MarkdownContent__2JuyX{--md-text-color:var(--chat-md-text-color,inherit);--md-muted-color:var(--chat-md-muted-color,currentColor);--md-link-color:var(--chat-md-link-color,#2563eb);--md-heading-color:var(--chat-heading-text-color,var(--md-text-color));--md-heading-font-family:var(\n --chat-md-heading-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-body-font-family:var(\n --chat-md-body-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-code-font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace;--md-inline-code-bg:var(--chat-md-inline-code-bg,rgba(15,23,42,.08));--md-inline-code-border:var(--chat-md-inline-code-border,rgba(15,23,42,.12));--md-inline-code-color:var(--chat-md-inline-code-color,var(--md-text-color));--md-blockquote-bg:var(--chat-md-blockquote-bg,rgba(248,250,252,.92));--md-blockquote-border:var(--chat-md-blockquote-border,rgba(59,130,246,.35));--md-table-bg:var(--chat-md-table-bg,rgba(248,250,252,.92));--md-table-row-alt-bg:var(--chat-md-table-row-alt-bg,rgba(241,245,249,.9));--md-table-head-bg:var(--chat-md-table-head-bg,rgba(226,232,240,.95));--md-table-border:var(--chat-md-table-border,rgba(148,163,184,.36));--md-citation-bg:var(--chat-md-citation-bg,rgba(59,130,246,.14));--md-citation-color:var(--chat-md-citation-color,#1d4ed8);color:var(--md-text-color);font-family:var(--md-body-font-family);font-size:inherit;letter-spacing:.002em;line-height:1.65}.MarkdownContent-module_MarkdownContent__2JuyX>:first-child{margin-top:0!important}.MarkdownContent-module_MarkdownContent__2JuyX>:last-child{margin-bottom:0!important}.MarkdownContent-module_MarkdownContent__2JuyX :is(h1,h2,h3,h4,h5,h6){text-wrap:balance;color:var(--md-heading-color);font-family:var(--md-heading-font-family);font-weight:600;letter-spacing:.01em;line-height:1.24;margin:1.4em 0 .55em;position:relative}.MarkdownContent-module_MarkdownContent__2JuyX h1{font-size:1.52rem}.MarkdownContent-module_MarkdownContent__2JuyX h2{font-size:1.4rem}.MarkdownContent-module_MarkdownContent__2JuyX h3{font-size:1.26rem}.MarkdownContent-module_MarkdownContent__2JuyX h4{font-size:1.14rem}.MarkdownContent-module_MarkdownContent__2JuyX h5{font-size:1.04rem}.MarkdownContent-module_MarkdownContent__2JuyX h6{font-size:.98rem}.MarkdownContent-module_MarkdownContent__2JuyX p{text-wrap:pretty;margin:0 0 .9em}.MarkdownContent-module_MarkdownContent__2JuyX p:empty{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(ul,ol){display:grid;gap:.35em;margin:.65em 0 1em;padding-inline-start:1.35rem}.MarkdownContent-module_MarkdownContent__2JuyX ul{list-style:disc}.MarkdownContent-module_MarkdownContent__2JuyX ol{list-style:decimal}.MarkdownContent-module_MarkdownContent__2JuyX li{line-height:1.58}.MarkdownContent-module_MarkdownContent__2JuyX li>:is(ul,ol){margin-bottom:0;margin-top:.45em}.MarkdownContent-module_MarkdownContent__2JuyX ul:has(>li>[data-chat-progress-marker]){list-style:none;padding-inline-start:0}.MarkdownContent-module_MarkdownContent__2JuyX ul:has(>li>[data-chat-progress-marker])>li{list-style:none}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker]{border-radius:999px;color:var(--md-link-color);display:inline-flex;height:1rem;margin-right:.58rem;transform-origin:center;vertical-align:text-bottom;width:1rem}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=pending]{animation:MarkdownContent-module_chatProgressMarkerSpin__TpoKr .85s linear infinite;border:2px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentcolor;box-sizing:border-box}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=completed]{align-items:center;background:color-mix(in srgb,currentColor 12%,transparent);border:2px solid;box-sizing:border-box;justify-content:center}.MarkdownContent-module_MarkdownContent__2JuyX [data-chat-progress-marker=completed]:before{border-bottom:2px solid;border-right:2px solid;box-sizing:border-box;content:\"\";display:block;height:.5rem;margin-top:-.06rem;transform:rotate(45deg);width:.26rem}@keyframes MarkdownContent-module_chatProgressMarkerSpin__TpoKr{to{transform:rotate(1turn)}}.MarkdownContent-module_MarkdownContent__2JuyX a{color:var(--md-link-color);text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:1.4px;text-underline-offset:.16em;transition:opacity .2s ease,text-decoration-thickness .2s ease}.MarkdownContent-module_MarkdownContent__2JuyX a:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a:hover{opacity:.92;text-decoration-thickness:2px}.MarkdownContent-module_MarkdownContent__2JuyX a.MarkdownContent-module_inlineReferenceChip__o-WIB,.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary{align-items:center;background:color-mix(in srgb,var(--md-link-color) 9%,hsla(0,0%,100%,.9));border:1px solid color-mix(in srgb,var(--md-link-color) 28%,rgba(148,163,184,.45));border-radius:8px;box-shadow:0 1px 2px rgba(15,23,42,.08);color:var(--md-link-color);display:inline-flex;font-size:.92em;font-weight:650;gap:.42em;line-height:1.35;max-width:100%;padding:.16em .58em;text-decoration:none;vertical-align:baseline;white-space:nowrap}.MarkdownContent-module_MarkdownContent__2JuyX a.MarkdownContent-module_inlineReferenceChip__o-WIB{margin:0 .08em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB{display:inline-block;margin:0 .08em;max-width:100%;position:relative;vertical-align:baseline}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary{cursor:pointer;list-style:none}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary::-webkit-details-marker{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):before{border:1.8px solid;border-radius:.16em;box-sizing:border-box;content:\"\";display:inline-block;flex:0 0 auto;height:.62em;opacity:.86;transform:translateY(.03em);width:.9em}.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB.inlineReferenceChip--with-icon,details.MarkdownContent-module_inlineReferenceChip__o-WIB.inlineReferenceChip--with-icon>summary):before{display:none}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceIcon{align-items:center;background:color-mix(in srgb,var(--md-link-color) 10%,#fff);border:1px solid color-mix(in srgb,var(--md-link-color) 22%,transparent);border-radius:.24em;display:inline-flex;flex:0 0 auto;font-size:.86em;height:1.1em;justify-content:center;line-height:1;overflow:hidden;position:relative;width:1.1em}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceIconFallback{color:var(--md-link-color);font-size:.48em;font-weight:750;letter-spacing:-.04em;max-width:100%;overflow:hidden;white-space:nowrap}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceIcon img{background:color-mix(in srgb,var(--md-link-color) 7%,#fff);border-radius:0;display:block;height:100%;inset:0;margin:0;max-width:none;object-fit:contain;position:absolute;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceIcon img[hidden]{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX :is(a.MarkdownContent-module_inlineReferenceChip__o-WIB,details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary):hover{background:color-mix(in srgb,var(--md-link-color) 14%,hsla(0,0%,100%,.94));border-color:color-mix(in srgb,var(--md-link-color) 52%,rgba(148,163,184,.35));opacity:1}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>div{background:color-mix(in srgb,var(--md-table-bg) 92%,#fff);border:1px solid color-mix(in srgb,var(--md-link-color) 22%,rgba(148,163,184,.45));border-radius:.65rem;box-shadow:0 10px 24px rgba(15,23,42,.16);display:grid;left:0;min-width:15rem;padding:.45rem;position:absolute;top:calc(100% + .45em);z-index:20}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus{align-items:center;color:#b91c1c;display:inline-flex;font-size:.78em;font-weight:650;gap:.38em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus{background:#ef4444;border-radius:999px;box-shadow:0 0 0 .16em color-mix(in srgb,#ef4444 18%,transparent);height:.52em;margin-left:.05em;width:.52em}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus--active{color:#047857}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus--active{background:#10b981;box-shadow:0 0 0 .16em color-mix(in srgb,#10b981 20%,transparent)}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuStatus:before{background:currentColor;border-radius:999px;content:\"\";height:.55em;width:.55em}.MarkdownContent-module_MarkdownContent__2JuyX details.MarkdownContent-module_inlineReferenceChip__o-WIB>summary .inlineReferenceMenuStatus:before{display:none}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuOption{background:transparent;border:0;border-radius:.4rem;color:var(--md-link-color);display:block;font-family:inherit;font-size:.82em;font-weight:650;line-height:1.35;padding:.45rem .55rem;text-align:left;text-decoration:none;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX a.inlineReferenceMenuOption:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a.inlineReferenceMenuOption:hover,.MarkdownContent-module_MarkdownContent__2JuyX button.inlineReferenceMenuOption:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX button.inlineReferenceMenuOption:hover{background:color-mix(in srgb,var(--md-link-color) 10%,transparent);text-decoration:none}.MarkdownContent-module_MarkdownContent__2JuyX button.inlineReferenceMenuOption{cursor:pointer}.MarkdownContent-module_MarkdownContent__2JuyX button.inlineReferenceMenuOption:disabled{cursor:wait;opacity:.55}.MarkdownContent-module_MarkdownContent__2JuyX .inlineReferenceMenuOption--disabled{color:var(--md-muted-color);cursor:not-allowed}.MarkdownContent-module_MarkdownContent__2JuyX img{border-radius:14px;display:block;height:auto;margin:.95em 0;max-width:100%}.MarkdownContent-module_MarkdownContent__2JuyX blockquote,.MarkdownContent-module_MarkdownContent__2JuyX hr,.MarkdownContent-module_MarkdownContent__2JuyX pre,.MarkdownContent-module_MarkdownContent__2JuyX table{margin:.95em 0}.MarkdownContent-module_MarkdownContent__2JuyX pre{background:transparent;border:none;border-radius:12px;box-shadow:none;display:block;overflow:visible;padding:0}.MarkdownContent-module_MarkdownContent__2JuyX blockquote{background:var(--md-blockquote-bg);border:none;border-left:3px solid var(--md-blockquote-border);border-radius:12px;box-shadow:none;color:var(--md-muted-color);display:block;padding:.72em .96em}.MarkdownContent-module_MarkdownContent__2JuyX blockquote>:last-child{margin-bottom:0}.MarkdownContent-module_MarkdownContent__2JuyX code{background:var(--md-inline-code-bg);border:1px solid var(--md-inline-code-border);border-radius:8px;color:var(--md-inline-code-color);font-family:var(--md-code-font-family);font-size:.88em;line-height:1.45;margin:0;padding:.14em .42em;word-break:break-word}.MarkdownContent-module_MarkdownContent__2JuyX pre code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg{background:#181c23;border:1px solid rgba(148,163,184,.35);border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.28);color:#f8fafc;font-family:var(--md-code-font-family);font-size:14px;line-height:1.6;overflow-x:auto}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX table{background:var(--md-table-bg);border:1px solid var(--md-table-border);border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 8px rgba(15,23,42,.1);color:inherit;font-size:.93em;overflow:hidden;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX td,.MarkdownContent-module_MarkdownContent__2JuyX th{background:none;border-bottom:1px solid var(--md-table-border);color:inherit;padding:.58em .72em;text-align:left;vertical-align:top}.MarkdownContent-module_MarkdownContent__2JuyX th{background:var(--md-table-head-bg);font-weight:600}.MarkdownContent-module_MarkdownContent__2JuyX tr:last-child td{border-bottom:none}.MarkdownContent-module_MarkdownContent__2JuyX tr:nth-child(2n) td{background:var(--md-table-row-alt-bg)}.MarkdownContent-module_MarkdownContent__2JuyX hr{border:none;border-top:1px solid var(--md-table-border);opacity:.8}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB){background:color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.3) 18%);border:1px solid var(--md-table-border);border-radius:16px;box-shadow:0 8px 22px rgba(15,23,42,.08);margin:.95em 0;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB):focus-within,.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB):hover{border-color:color-mix(in srgb,var(--md-link-color) 24%,var(--md-table-border) 76%);box-shadow:0 12px 28px rgba(15,23,42,.12)}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary{align-items:center;background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 88%,hsla(0,0%,100%,.85) 12%),color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.7) 18%));color:var(--md-link-color);cursor:pointer;display:flex;font-weight:600;gap:.72rem;list-style:none;padding:.9em 1.05em;transition:background .18s ease,color .18s ease;user-select:none}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary:before{border-bottom:2px solid;border-right:2px solid;content:\"\";flex:0 0 auto;height:.62rem;margin-top:-.04rem;opacity:.82;transform:rotate(-45deg);transition:transform .18s ease,opacity .18s ease;width:.62rem}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 76%,hsla(0,0%,100%,.95) 24%),color-mix(in srgb,var(--md-table-bg) 74%,hsla(0,0%,100%,.82) 26%))}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary:focus-visible{outline:2px solid color-mix(in srgb,var(--md-link-color) 52%,transparent);outline-offset:-2px}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary::-webkit-details-marker{display:none}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--md-table-border) 88%,transparent)}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)[open]>summary:before{opacity:1;transform:rotate(45deg)}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>:not(summary){margin-left:1.05em;margin-right:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>summary+*{margin-top:.95em}.MarkdownContent-module_MarkdownContent__2JuyX details:not(.MarkdownContent-module_inlineReferenceChip__o-WIB)>:last-child{margin-bottom:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX strong{font-weight:650}.MarkdownContent-module_MarkdownContent__2JuyX em{font-style:italic}.MarkdownContent-module_citationRef__fKqaT,.MarkdownContent-module_citation__11SMw{align-items:center;background:var(--md-citation-bg);border-radius:999px;color:var(--md-citation-color);display:inline-flex;font-size:.74em;font-weight:700;justify-content:center;line-height:1.45;margin:0 .1em;min-width:1.4em;padding:0 .35em;vertical-align:super}.MarkdownContent-module_MarkdownContent__2JuyX sup[data-citation-footnote]{color:currentColor;display:inline;font-size:.72em;font-weight:700;line-height:1;margin:0 .7em 0 .08em;vertical-align:super}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUNJLGlEQUFtRCxDQUNuRCx3REFBMEQsQ0FDMUQsaURBQW1ELENBQ25ELHNFQUF3RSxDQUN4RTs7S0FHQyxDQUNEOztLQUdDLENBQ0QsbUdBQTBHLENBQzFHLG9FQUEwRSxDQUMxRSw0RUFBa0YsQ0FDbEYsNEVBQThFLENBQzlFLHFFQUEyRSxDQUMzRSw0RUFBa0YsQ0FDbEYsMkRBQWlFLENBQ2pFLDBFQUFnRixDQUNoRixxRUFBMkUsQ0FDM0UsbUVBQXlFLENBQ3pFLGdFQUFzRSxDQUN0RSx5REFBMkQsQ0FFM0QsMEJBQTJCLENBQzNCLHNDQUF1QyxDQUN2QyxpQkFBa0IsQ0FFbEIscUJBQXVCLENBRHZCLGdCQUVKLENBRUEsNERBQ0ksc0JBQ0osQ0FFQSwyREFDSSx5QkFDSixDQUVBLHNFQVFJLGlCQUFrQixDQUxsQiw2QkFBOEIsQ0FDOUIseUNBQTBDLENBQzFDLGVBQWdCLENBRWhCLG9CQUFzQixDQUR0QixnQkFBaUIsQ0FKakIsb0JBQXNCLENBRHRCLGlCQVFKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLGtEQUNJLGlCQUNKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxpQkFDSixDQUVBLGtEQUNJLGdCQUNKLENBRUEsaURBRUksZ0JBQWlCLENBRGpCLGVBRUosQ0FFQSx1REFDSSxZQUNKLENBRUEsMERBR0ksWUFBYSxDQUNiLFNBQVcsQ0FIWCxrQkFBb0IsQ0FDcEIsNEJBR0osQ0FFQSxrREFDSSxlQUNKLENBRUEsa0RBQ0ksa0JBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLDZEQUVJLGVBQWdCLENBRGhCLGdCQUVKLENBRUEsdUZBQ0ksZUFBZ0IsQ0FDaEIsc0JBQ0osQ0FFQSwwRkFDSSxlQUNKLENBRUEsMkVBTUksbUJBQW9CLENBQ3BCLDBCQUEyQixDQU4zQixtQkFBb0IsQ0FFcEIsV0FBWSxDQUNaLG1C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QixDQUNuQixtQkFDSixDQUVBLHlIQUNJLGdCQUNKLENBRUEsMkhBQ0ksb0JBQ0osQ0FFQSxzREFDSSxlQUNKLENBRUEsa0RBQ0ksaUJBQ0osQ0FrQkEsbUZBRUksa0JBQW1CLENBV25CLGdDQUFpQyxDQU5qQyxtQkFBb0IsQ0FLcEIsOEJBQStCLENBWC9CLG1CQUFvQixDQU9wQixlQUFpQixDQUNqQixlQUFnQixDQU5oQixzQkFBdUIsQ0FPdkIsZ0JBQWlCLENBTGpCLGFBQWUsQ0FEZixlQUFnQixDQUVoQixlQUFpQixDQUtqQixvQkFHSixDQUVBLDJFQU9JLGtCQUFtQixDQU5uQixjQUFlLENBRWYsZUFBaUIsQ0FDakIsZUFBZ0IsQ0FDaEIsYUFBYyxDQUhkLHFCQUF3QixDQUl4QixvQkFFSiIsImZpbGUiOiJNYXJrZG93bkNvbnRlbnQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5NYXJrZG93bkNvbnRlbnQge1xuICAgIC0tbWQtdGV4dC1jb2xvcjogdmFyKC0tY2hhdC1tZC10ZXh0LWNvbG9yLCBpbmhlcml0KTtcbiAgICAtLW1kLW11dGVkLWNvbG9yOiB2YXIoLS1jaGF0LW1kLW11dGVkLWNvbG9yLCBjdXJyZW50Q29sb3IpO1xuICAgIC0tbWQtbGluay1jb2xvcjogdmFyKC0tY2hhdC1tZC1saW5rLWNvbG9yLCAjMjU2M2ViKTtcbiAgICAtLW1kLWhlYWRpbmctY29sb3I6IHZhcigtLWNoYXQtaGVhZGluZy10ZXh0LWNvbG9yLCB2YXIoLS1tZC10ZXh0LWNvbG9yKSk7XG4gICAgLS1tZC1oZWFkaW5nLWZvbnQtZmFtaWx5OiB2YXIoXG4gICAgICAgIC0tY2hhdC1tZC1oZWFkaW5nLWZvbnQtZmFtaWx5LFxuICAgICAgICB2YXIoLS1mb250LXBvcHBpbnMsICdQb3BwaW5zJywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmKVxuICAgICk7XG4gICAgLS1tZC1ib2R5LWZvbnQtZmFtaWx5OiB2YXIoXG4gICAgICAgIC0tY2hhdC1tZC1ib2R5LWZvbnQtZmFtaWx5LFxuICAgICAgICB2YXIoLS1mb250LXBvcHBpbnMsICdQb3BwaW5zJywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmKVxuICAgICk7XG4gICAgLS1tZC1jb2RlLWZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcbiAgICAtLW1kLWlubGluZS1jb2RlLWJnOiB2YXIoLS1jaGF0LW1kLWlubGluZS1jb2RlLWJnLCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpKTtcbiAgICAtLW1kLWlubGluZS1jb2RlLWJvcmRlcjogdmFyKC0tY2hhdC1tZC1pbmxpbmUtY29kZS1ib3JkZXIsIHJnYmEoMTUsIDIzLCA0MiwgMC4xMikpO1xuICAgIC0tbWQtaW5saW5lLWNvZGUtY29sb3I6IHZhcigtLWNoYXQtbWQtaW5saW5lLWNvZGUtY29sb3IsIHZhcigtLW1kLXRleHQtY29sb3IpKTtcbiAgICAtLW1kLWJsb2NrcXVvdGUtYmc6IHZhcigtLWNoYXQtbWQtYmxvY2txdW90ZS1iZywgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkyKSk7XG4gICAgLS1tZC1ibG9ja3F1b3RlLWJvcmRlcjogdmFyKC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJvcmRlciwgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMzUpKTtcbiAgICAtLW1kLXRhYmxlLWJnOiB2YXIoLS1jaGF0LW1kLXRhYmxlLWJnLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTIpKTtcbiAgICAtLW1kLXRhYmxlLXJvdy1hbHQtYmc6IHZhcigtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZywgcmdiYSgyNDEsIDI0NSwgMjQ5LCAwLjkpKTtcbiAgICAtLW1kLXRhYmxlLWhlYWQtYmc6IHZhcigtLWNoYXQtbWQtdGFibGUtaGVhZC1iZywgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjk1KSk7XG4gICAgLS1tZC10YWJsZS1ib3JkZXI6IHZhcigtLWNoYXQtbWQtdGFibGUtYm9yZGVyLCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzYpKTtcbiAgICAtLW1kLWNpdGF0aW9uLWJnOiB2YXIoLS1jaGF0LW1kLWNpdGF0aW9uLWJnLCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNCkpO1xuICAgIC0tbWQtY2l0YXRpb24tY29sb3I6IHZhcigtLWNoYXQtbWQtY2l0YXRpb24tY29sb3IsICMxZDRlZDgpO1xuXG4gICAgY29sb3I6IHZhcigtLW1kLXRleHQtY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1ib2R5LWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDAyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLk1hcmtkb3duQ29udGVudCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxLjRlbSAwIDAuNTVlbTtcbiAgICBjb2xvcjogdmFyKC0tbWQtaGVhZGluZy1jb2xvcik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kLWhlYWRpbmctZm9udC1mYW1pbHkpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDEge1xuICAgIGZvbnQtc2l6ZTogMS41MnJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoMiB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDMge1xuICAgIGZvbnQtc2l6ZTogMS4yNnJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoNCB7XG4gICAgZm9udC1zaXplOiAxLjE0cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGg1IHtcbiAgICBmb250LXNpemU6IDEuMDRyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDYge1xuICAgIGZvbnQtc2l6ZTogMC45OHJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwIHtcbiAgICBtYXJnaW46IDAgMCAwLjllbTtcbiAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDppcyh1bCwgb2wpIHtcbiAgICBtYXJnaW46IDAuNjVlbSAwIDFlbTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMS4zNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC4zNWVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuXG4uTWFya2Rvd25Db250ZW50IG9sIHtcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGxpIHtcbiAgICBsaW5lLWhlaWdodDogMS41ODtcbn1cblxuLk1hcmtkb3duQ29udGVudCBsaSA+IDppcyh1bCwgb2wpIHtcbiAgICBtYXJnaW4tdG9wOiAwLjQ1ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCB1bDpoYXMoPiBsaSA+IFtkYXRhLWNoYXQtcHJvZ3Jlc3MtbWFya2VyXSkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdWw6aGFzKD4gbGkgPiBbZGF0YS1jaGF0LXByb2dyZXNzLW1hcmtlcl0pID4gbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgW2RhdGEtY2hhdC1wcm9ncmVzcy1tYXJrZXJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjU4cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBjb2xvcjogdmFyKC0tbWQtbGluay1jb2xvcik7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG4uTWFya2Rvd25Db250ZW50IFtkYXRhLWNoYXQtcHJvZ3Jlc3MtbWFya2VyPSdwZW5kaW5nJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAycHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAyMiUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgYW5pbWF0aW9uOiBjaGF0UHJvZ3Jlc3NNYXJrZXJTcGluIDAuODVzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBbZGF0YS1jaGF0LXByb2dyZXNzLW1hcmtlcj0nY29tcGxldGVkJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAxMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBbZGF0YS1jaGF0LXByb2dyZXNzLW1hcmtlcj0nY29tcGxldGVkJ106OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMC4yNnJlbTtcbiAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC4wNnJlbTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbkBrZXlmcmFtZXMgY2hhdFByb2dyZXNzTWFya2VyU3BpbiB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLk1hcmtkb3duQ29udGVudCBhIHtcbiAgICBjb2xvcjogdmFyKC0tbWQtbGluay1jb2xvcik7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxLjRweDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTZlbTtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyAwLjJzIGVhc2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYTpob3Zlcixcbi5NYXJrZG93bkNvbnRlbnQgYTpmb2N1cy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAwLjkyO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDJweDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBhLmlubGluZVJlZmVyZW5jZUNoaXAsXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCA+IHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC40MmVtO1xuICAgIHBhZGRpbmc6IDAuMTZlbSAwLjU4ZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDI4JSwgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQ1KSk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSA5JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgICBjb2xvcjogdmFyKC0tbWQtbGluay1jb2xvcik7XG4gICAgZm9udC1zaXplOiAwLjkyZW07XG4gICAgZm9udC13ZWlnaHQ6IDY1MDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYS5pbmxpbmVSZWZlcmVuY2VDaGlwIHtcbiAgICBtYXJnaW46IDAgMC4wOGVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAuMDhlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6aXMoYS5pbmxpbmVSZWZlcmVuY2VDaGlwLCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5KTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMC45ZW07XG4gICAgaGVpZ2h0OiAwLjYyZW07XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYm9yZGVyOiAxLjhweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMC4xNmVtO1xuICAgIG9wYWNpdHk6IDAuODY7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMDNlbSk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnRcbiAgICA6aXMoXG4gICAgICAgIGEuaW5saW5lUmVmZXJlbmNlQ2hpcDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZUNoaXAtLXdpdGgtaWNvbiksXG4gICAgICAgIGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZUNoaXAtLXdpdGgtaWNvbikgPiBzdW1tYXJ5XG4gICAgKTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZUljb24pIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgd2lkdGg6IDEuMWVtO1xuICAgIGhlaWdodDogMS4xZW07XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSAyMiUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjI0ZW07XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDEwJSwgd2hpdGUpO1xuICAgIGZvbnQtc2l6ZTogMC44NmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZUljb25GYWxsYmFjaykge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1saW5rLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDAuNDhlbTtcbiAgICBmb250LXdlaWdodDogNzUwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlSWNvbikgaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgNyUsIHdoaXRlKTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZUljb24pIGltZ1toaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IDppcyhhLmlubGluZVJlZmVyZW5jZUNoaXAsIGRldGFpbHMuaW5saW5lUmVmZXJlbmNlQ2hpcCA+IHN1bW1hcnkpOmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCA6aXMoYS5pbmxpbmVSZWZlcmVuY2VDaGlwLCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5KTpmb2N1cy12aXNpYmxlIHtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSA1MiUsIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSkpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC1saW5rLWNvbG9yKSAxNCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCkpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gZGl2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjA7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyAwLjQ1ZW0pO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBtaW4td2lkdGg6IDE1cmVtO1xuICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDIyJSwgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQ1KSk7XG4gICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtYmcpIDkyJSwgd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudVN0YXR1cykge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjM4ZW07XG4gICAgY29sb3I6ICNiOTFjMWM7XG4gICAgZm9udC1zaXplOiAwLjc4ZW07XG4gICAgZm9udC13ZWlnaHQ6IDY1MDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMpIHtcbiAgICB3aWR0aDogMC41MmVtO1xuICAgIGhlaWdodDogMC41MmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjA1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2VmNDQ0NDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjE2ZW0gY29sb3ItbWl4KGluIHNyZ2IsICNlZjQ0NDQgMTglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudVN0YXR1cy0tYWN0aXZlKSB7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscy5pbmxpbmVSZWZlcmVuY2VDaGlwID4gc3VtbWFyeSA6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51U3RhdHVzLS1hY3RpdmUpIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTBiOTgxO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMTZlbSBjb2xvci1taXgoaW4gc3JnYiwgIzEwYjk4MSAyMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51U3RhdHVzKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMC41NWVtO1xuICAgIGhlaWdodDogMC41NWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzLmlubGluZVJlZmVyZW5jZUNoaXAgPiBzdW1tYXJ5IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVTdGF0dXMpOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudU9wdGlvbikge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuNDVyZW0gMC41NXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1tZC1saW5rLWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDAuODJlbTtcbiAgICBmb250LXdlaWdodDogNjUwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGE6Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51T3B0aW9uKTpob3Zlcixcbi5NYXJrZG93bkNvbnRlbnQgYTpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVPcHRpb24pOmZvY3VzLXZpc2libGUsXG4uTWFya2Rvd25Db250ZW50IGJ1dHRvbjpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVPcHRpb24pOmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCBidXR0b246Z2xvYmFsKC5pbmxpbmVSZWZlcmVuY2VNZW51T3B0aW9uKTpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGJ1dHRvbjpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVPcHRpb24pIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYnV0dG9uOmdsb2JhbCguaW5saW5lUmVmZXJlbmNlTWVudU9wdGlvbik6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogd2FpdDtcbiAgICBvcGFjaXR5OiAwLjU1O1xufVxuXG4uTWFya2Rvd25Db250ZW50IDpnbG9iYWwoLmlubGluZVJlZmVyZW5jZU1lbnVPcHRpb24tLWRpc2FibGVkKSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBjb2xvcjogdmFyKC0tbWQtbXV0ZWQtY29sb3IpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIG1hcmdpbjogMC45NWVtIDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcHJlLFxuLk1hcmtkb3duQ29udGVudCBibG9ja3F1b3RlLFxuLk1hcmtkb3duQ29udGVudCB0YWJsZSxcbi5NYXJrZG93bkNvbnRlbnQgaHIge1xuICAgIG1hcmdpbjogMC45NWVtIDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcHJlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYmxvY2txdW90ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tbWQtYmxvY2txdW90ZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC1ibG9ja3F1b3RlLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tbWQtbXV0ZWQtY29sb3IpO1xuICAgIHBhZGRpbmc6IDAuNzJlbSAwLjk2ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYmxvY2txdW90ZSA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGNvZGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjE0ZW0gMC40MmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1kLWlubGluZS1jb2RlLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLWlubGluZS1jb2RlLWJnKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtY29kZS1mb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiAwLjg4ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgY29sb3I6IHZhcigtLW1kLWlubGluZS1jb2RlLWNvbG9yKTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHByZSBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLk1hcmtkb3duQ29udGVudCAuY2hhdC1jb2RlLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTgxYzIzO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyLCA2LCAyMywgMC4yOCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kLWNvZGUtZm9udC1mYW1pbHkpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IC5jaGF0LWNvZGUtYmxvY2sgY29kZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgd29yZC1icmVhazogbm9ybWFsO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWQtdGFibGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtdGFibGUtYmcpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMSk7XG4gICAgZm9udC1zaXplOiAwLjkzZW07XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdGgsXG4uTWFya2Rvd25Db250ZW50IHRkIHtcbiAgICBwYWRkaW5nOiAwLjU4ZW0gMC43MmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHRoIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC10YWJsZS1oZWFkLWJnKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC10YWJsZS1yb3ctYWx0LWJnKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBociB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpO1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOm5vdCguaW5saW5lUmVmZXJlbmNlQ2hpcCkge1xuICAgIG1hcmdpbjogMC45NWVtIDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWQtdGFibGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC10YWJsZS1iZykgODIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgMTglKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xOHMgZWFzZSwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOm5vdCguaW5saW5lUmVmZXJlbmNlQ2hpcCk6aG92ZXIsXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHM6bm90KC5pbmxpbmVSZWZlcmVuY2VDaGlwKTpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDI0JSwgdmFyKC0tbWQtdGFibGUtYm9yZGVyKSA3NiUpO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC43MnJlbTtcbiAgICBwYWRkaW5nOiAwLjllbSAxLjA1ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLW1kLWxpbmstY29sb3IpO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC10YWJsZS1oZWFkLWJnKSA4OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSkgMTIlKSxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJnKSA4MiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAxOCUpXG4gICAgKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMC42MnJlbTtcbiAgICBoZWlnaHQ6IDAuNjJyZW07XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTAuMDRyZW07XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwLjgyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlLCBvcGFjaXR5IDAuMThzIGVhc2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gc3VtbWFyeTpob3Zlcixcbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gc3VtbWFyeTpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWhlYWQtYmcpIDc2JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAyNCUpLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtYmcpIDc0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSAyNiUpXG4gICAgKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOm5vdCguaW5saW5lUmVmZXJlbmNlQ2hpcCkgPiBzdW1tYXJ5OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgNTIlLCB0cmFuc3BhcmVudCk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOm5vdCguaW5saW5lUmVmZXJlbmNlQ2hpcClbb3Blbl0gPiBzdW1tYXJ5IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJvcmRlcikgODglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApW29wZW5dID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOm5vdCguaW5saW5lUmVmZXJlbmNlQ2hpcCkgPiA6bm90KHN1bW1hcnkpIHtcbiAgICBtYXJnaW4tbGVmdDogMS4wNWVtO1xuICAgIG1hcmdpbi1yaWdodDogMS4wNWVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHM6bm90KC5pbmxpbmVSZWZlcmVuY2VDaGlwKSA+IHN1bW1hcnkgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwLjk1ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsczpub3QoLmlubGluZVJlZmVyZW5jZUNoaXApID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMDVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNpdGF0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMS40ZW07XG4gICAgbWFyZ2luOiAwIDAuMWVtO1xuICAgIHBhZGRpbmc6IDAgMC4zNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMC43NGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1jaXRhdGlvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtY2l0YXRpb24tYmcpO1xufVxuXG4uY2l0YXRpb25SZWYge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAxLjRlbTtcbiAgICBtYXJnaW46IDAgMC4xZW07XG4gICAgcGFkZGluZzogMCAwLjM1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAwLjc0ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgY29sb3I6IHZhcigtLW1kLWNpdGF0aW9uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC1jaXRhdGlvbi1iZyk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgc3VwW2RhdGEtY2l0YXRpb24tZm9vdG5vdGVdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwIDAuN2VtIDAgMC4wOGVtO1xuICAgIGZvbnQtc2l6ZTogMC43MmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4iXX0= */";
|
|
27502
28199
|
var styles$5 = {"MarkdownContent":"MarkdownContent-module_MarkdownContent__2JuyX","chatProgressMarkerSpin":"MarkdownContent-module_chatProgressMarkerSpin__TpoKr","inlineReferenceChip":"MarkdownContent-module_inlineReferenceChip__o-WIB","chat-code-block":"MarkdownContent-module_chat-code-block__ZffFg","citation":"MarkdownContent-module_citation__11SMw","citationRef":"MarkdownContent-module_citationRef__fKqaT"};
|
|
27503
28200
|
styleInject(css_248z$5);
|
|
27504
28201
|
|
|
@@ -27508,6 +28205,18 @@ styleInject(css_248z$5);
|
|
|
27508
28205
|
* @private utility of `MarkdownContent` component
|
|
27509
28206
|
*/
|
|
27510
28207
|
const DETAILS_SUMMARY_SELECTOR = 'summary';
|
|
28208
|
+
/**
|
|
28209
|
+
* Selector matching client-action buttons rendered inside inline-reference menus.
|
|
28210
|
+
*
|
|
28211
|
+
* @private utility of `MarkdownContent` component
|
|
28212
|
+
*/
|
|
28213
|
+
const INLINE_REFERENCE_MENU_ACTION_SELECTOR = `[${MARKDOWN_INLINE_REFERENCE_MENU_ACTION_ATTRIBUTE}]`;
|
|
28214
|
+
/**
|
|
28215
|
+
* Selector matching inline-reference favicon images which need a broken-image fallback.
|
|
28216
|
+
*
|
|
28217
|
+
* @private utility of `MarkdownContent` component
|
|
28218
|
+
*/
|
|
28219
|
+
const INLINE_REFERENCE_ICON_SELECTOR = `img[${MARKDOWN_INLINE_REFERENCE_ICON_ATTRIBUTE}]`;
|
|
27511
28220
|
/**
|
|
27512
28221
|
* Resolves the active document theme when a host application does not pass an explicit theme.
|
|
27513
28222
|
*
|
|
@@ -27574,6 +28283,38 @@ function resolveClickedDetailsElement(target, container) {
|
|
|
27574
28283
|
const details = summary.closest('details');
|
|
27575
28284
|
return details instanceof HTMLDetailsElement ? details : null;
|
|
27576
28285
|
}
|
|
28286
|
+
/**
|
|
28287
|
+
* Resolves the configured callback for one rendered inline-reference menu action.
|
|
28288
|
+
*
|
|
28289
|
+
* @param actionButton - Clicked menu action button.
|
|
28290
|
+
* @param inlineReferences - References available to the markdown content.
|
|
28291
|
+
* @returns Matching action callback, or `null` when the rendered marker is stale.
|
|
28292
|
+
*
|
|
28293
|
+
* @private utility of `MarkdownContent` component
|
|
28294
|
+
*/
|
|
28295
|
+
function resolveInlineReferenceMenuAction(actionButton, inlineReferences) {
|
|
28296
|
+
var _a, _b;
|
|
28297
|
+
const actionId = actionButton.getAttribute(MARKDOWN_INLINE_REFERENCE_MENU_ACTION_ATTRIBUTE);
|
|
28298
|
+
const referenceId = actionButton.getAttribute(MARKDOWN_INLINE_REFERENCE_MENU_ACTION_REFERENCE_ATTRIBUTE);
|
|
28299
|
+
if (!actionId || !referenceId || !inlineReferences) {
|
|
28300
|
+
return null;
|
|
28301
|
+
}
|
|
28302
|
+
const reference = inlineReferences.find((candidateReference) => candidateReference.reference === referenceId);
|
|
28303
|
+
const option = (_a = reference === null || reference === void 0 ? void 0 : reference.menu) === null || _a === void 0 ? void 0 : _a.options.find((candidateOption) => { var _a; return ((_a = candidateOption.action) === null || _a === void 0 ? void 0 : _a.id) === actionId; });
|
|
28304
|
+
return ((_b = option === null || option === void 0 ? void 0 : option.action) === null || _b === void 0 ? void 0 : _b.onSelect) || null;
|
|
28305
|
+
}
|
|
28306
|
+
/**
|
|
28307
|
+
* Hides a favicon when it has completed without loading any pixels.
|
|
28308
|
+
*
|
|
28309
|
+
* @param faviconImage - Inline-reference favicon to inspect.
|
|
28310
|
+
*
|
|
28311
|
+
* @private utility of `MarkdownContent` component
|
|
28312
|
+
*/
|
|
28313
|
+
function hideBrokenInlineReferenceIcon(faviconImage) {
|
|
28314
|
+
if (faviconImage.complete && faviconImage.naturalWidth === 0) {
|
|
28315
|
+
faviconImage.hidden = true;
|
|
28316
|
+
}
|
|
28317
|
+
}
|
|
27577
28318
|
/**
|
|
27578
28319
|
* Renders markdown content with support for code highlighting, math, and tables.
|
|
27579
28320
|
*
|
|
@@ -27656,8 +28397,50 @@ const MarkdownContent = memo(function MarkdownContent(props) {
|
|
|
27656
28397
|
}, 0);
|
|
27657
28398
|
pendingToggleFallbackTimeoutIds.add(fallbackTimeoutId);
|
|
27658
28399
|
};
|
|
28400
|
+
/**
|
|
28401
|
+
* Executes one delegated inline-reference menu action without allowing the click to reach
|
|
28402
|
+
* surrounding chat message handlers.
|
|
28403
|
+
*/
|
|
28404
|
+
const handleInlineReferenceMenuActionClick = (event) => {
|
|
28405
|
+
const targetElement = event.target instanceof Element ? event.target : null;
|
|
28406
|
+
const actionButton = targetElement === null || targetElement === void 0 ? void 0 : targetElement.closest(INLINE_REFERENCE_MENU_ACTION_SELECTOR);
|
|
28407
|
+
if (!(actionButton instanceof HTMLButtonElement) || !containerElement.contains(actionButton)) {
|
|
28408
|
+
return;
|
|
28409
|
+
}
|
|
28410
|
+
const action = resolveInlineReferenceMenuAction(actionButton, inlineReferences);
|
|
28411
|
+
if (!action || actionButton.disabled) {
|
|
28412
|
+
return;
|
|
28413
|
+
}
|
|
28414
|
+
event.preventDefault();
|
|
28415
|
+
event.stopPropagation();
|
|
28416
|
+
actionButton.disabled = true;
|
|
28417
|
+
actionButton.setAttribute('aria-busy', 'true');
|
|
28418
|
+
void Promise.resolve()
|
|
28419
|
+
.then(action)
|
|
28420
|
+
.catch((error) => {
|
|
28421
|
+
console.error('Inline reference menu action failed:', error);
|
|
28422
|
+
})
|
|
28423
|
+
.finally(() => {
|
|
28424
|
+
if (!actionButton.isConnected) {
|
|
28425
|
+
return;
|
|
28426
|
+
}
|
|
28427
|
+
actionButton.disabled = false;
|
|
28428
|
+
actionButton.removeAttribute('aria-busy');
|
|
28429
|
+
});
|
|
28430
|
+
};
|
|
27659
28431
|
containerElement.addEventListener('toggle', handleToggle, true);
|
|
27660
28432
|
containerElement.addEventListener('click', handleSummaryClick);
|
|
28433
|
+
containerElement.addEventListener('click', handleInlineReferenceMenuActionClick);
|
|
28434
|
+
const inlineReferenceIconImages = containerElement.querySelectorAll(INLINE_REFERENCE_ICON_SELECTOR);
|
|
28435
|
+
const handleInlineReferenceIconError = (event) => {
|
|
28436
|
+
if (event.currentTarget instanceof HTMLImageElement) {
|
|
28437
|
+
event.currentTarget.hidden = true;
|
|
28438
|
+
}
|
|
28439
|
+
};
|
|
28440
|
+
inlineReferenceIconImages.forEach((faviconImage) => {
|
|
28441
|
+
hideBrokenInlineReferenceIcon(faviconImage);
|
|
28442
|
+
faviconImage.addEventListener('error', handleInlineReferenceIconError);
|
|
28443
|
+
});
|
|
27661
28444
|
const preElements = containerElement.querySelectorAll('pre');
|
|
27662
28445
|
preElements.forEach((pre) => {
|
|
27663
28446
|
// Check if it is a code block (has code element)
|
|
@@ -27688,12 +28471,16 @@ const MarkdownContent = memo(function MarkdownContent(props) {
|
|
|
27688
28471
|
return () => {
|
|
27689
28472
|
containerElement.removeEventListener('toggle', handleToggle, true);
|
|
27690
28473
|
containerElement.removeEventListener('click', handleSummaryClick);
|
|
28474
|
+
containerElement.removeEventListener('click', handleInlineReferenceMenuActionClick);
|
|
28475
|
+
inlineReferenceIconImages.forEach((faviconImage) => {
|
|
28476
|
+
faviconImage.removeEventListener('error', handleInlineReferenceIconError);
|
|
28477
|
+
});
|
|
27691
28478
|
pendingToggleFallbackTimeoutIds.forEach((timeoutId) => window.clearTimeout(timeoutId));
|
|
27692
28479
|
pendingToggleFallbackTimeoutIds.clear();
|
|
27693
28480
|
rootsRef.current.forEach((root) => root.unmount());
|
|
27694
28481
|
rootsRef.current = [];
|
|
27695
28482
|
};
|
|
27696
|
-
}, [htmlContent, resolvedTheme]);
|
|
28483
|
+
}, [htmlContent, inlineReferences, resolvedTheme]);
|
|
27697
28484
|
return (jsx("div", { ref: containerRef, className: classNames(styles$5.MarkdownContent, className), dangerouslySetInnerHTML: {
|
|
27698
28485
|
__html: htmlContent,
|
|
27699
28486
|
} }));
|
|
@@ -32283,10 +33070,10 @@ function createPointOfInterestMarker(leaflet, feature, latlng) {
|
|
|
32283
33070
|
: '';
|
|
32284
33071
|
const icon = leaflet.divIcon({
|
|
32285
33072
|
className: styles$2.poiMarkerIcon,
|
|
32286
|
-
html: `
|
|
32287
|
-
|
|
32288
|
-
|
|
32289
|
-
|
|
33073
|
+
html: spaceTrim$1((block) => `
|
|
33074
|
+
<span class="${styles$2.poiMarkerPulse}" aria-hidden="true"></span>
|
|
33075
|
+
${block(initialHtml)}
|
|
33076
|
+
`).trim(),
|
|
32290
33077
|
iconSize: [POI_MARKER_CONFIG.size, POI_MARKER_CONFIG.size],
|
|
32291
33078
|
iconAnchor: POI_MARKER_CONFIG.anchor,
|
|
32292
33079
|
});
|
|
@@ -33251,6 +34038,261 @@ function buildCitationKey(citation, origin) {
|
|
|
33251
34038
|
return `${origin.label}:${citation.id}:${citation.source}`;
|
|
33252
34039
|
}
|
|
33253
34040
|
|
|
34041
|
+
/**
|
|
34042
|
+
* Validates one already-parsed JSON value as a project change.
|
|
34043
|
+
*
|
|
34044
|
+
* @param value - Raw serialized project change.
|
|
34045
|
+
* @returns The typed project change, or `null` when the value does not match the expected shape,
|
|
34046
|
+
* so consumers can silently skip foreign or malformed entries.
|
|
34047
|
+
*
|
|
34048
|
+
* @private internal utility of the agent-message runtime
|
|
34049
|
+
*/
|
|
34050
|
+
function normalizeAgentMessageProjectChange(value) {
|
|
34051
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
34052
|
+
return null;
|
|
34053
|
+
}
|
|
34054
|
+
const candidate = value;
|
|
34055
|
+
if (!isNonEmptyString(candidate.projectName) || !isNonEmptyString(candidate.commitHash)) {
|
|
34056
|
+
return null;
|
|
34057
|
+
}
|
|
34058
|
+
if (!isNonEmptyString(candidate.committedAt) || !Number.isFinite(Date.parse(candidate.committedAt))) {
|
|
34059
|
+
return null;
|
|
34060
|
+
}
|
|
34061
|
+
if (!Array.isArray(candidate.changedFiles)) {
|
|
34062
|
+
return null;
|
|
34063
|
+
}
|
|
34064
|
+
const changedFiles = candidate.changedFiles.map((changedFile) => normalizeAgentMessageProjectChangedFile(changedFile));
|
|
34065
|
+
if (changedFiles.some((changedFile) => changedFile === null)) {
|
|
34066
|
+
return null;
|
|
34067
|
+
}
|
|
34068
|
+
if (!isChangeCount(candidate.insertionCount) || !isChangeCount(candidate.deletionCount)) {
|
|
34069
|
+
return null;
|
|
34070
|
+
}
|
|
34071
|
+
if (typeof candidate.diff !== 'string' || typeof candidate.isDiffTruncated !== 'boolean') {
|
|
34072
|
+
return null;
|
|
34073
|
+
}
|
|
34074
|
+
return {
|
|
34075
|
+
projectName: candidate.projectName.trim(),
|
|
34076
|
+
commitHash: candidate.commitHash.trim(),
|
|
34077
|
+
committedAt: candidate.committedAt,
|
|
34078
|
+
changedFiles: changedFiles,
|
|
34079
|
+
insertionCount: candidate.insertionCount,
|
|
34080
|
+
deletionCount: candidate.deletionCount,
|
|
34081
|
+
diff: candidate.diff,
|
|
34082
|
+
isDiffTruncated: candidate.isDiffTruncated,
|
|
34083
|
+
};
|
|
34084
|
+
}
|
|
34085
|
+
/**
|
|
34086
|
+
* Validates one already-parsed JSON value as a changed project file.
|
|
34087
|
+
*
|
|
34088
|
+
* @param value - Raw serialized changed file.
|
|
34089
|
+
* @returns The typed changed file, or `null` when the value does not match the expected shape.
|
|
34090
|
+
*
|
|
34091
|
+
* @private internal helper of `normalizeAgentMessageProjectChange`
|
|
34092
|
+
*/
|
|
34093
|
+
function normalizeAgentMessageProjectChangedFile(value) {
|
|
34094
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
34095
|
+
return null;
|
|
34096
|
+
}
|
|
34097
|
+
const candidate = value;
|
|
34098
|
+
if (!isNonEmptyString(candidate.path)) {
|
|
34099
|
+
return null;
|
|
34100
|
+
}
|
|
34101
|
+
if (!isChangeCount(candidate.insertionCount) || !isChangeCount(candidate.deletionCount)) {
|
|
34102
|
+
return null;
|
|
34103
|
+
}
|
|
34104
|
+
return {
|
|
34105
|
+
path: candidate.path.trim(),
|
|
34106
|
+
insertionCount: candidate.insertionCount,
|
|
34107
|
+
deletionCount: candidate.deletionCount,
|
|
34108
|
+
};
|
|
34109
|
+
}
|
|
34110
|
+
/**
|
|
34111
|
+
* Checks that one value is a usable non-empty string.
|
|
34112
|
+
*
|
|
34113
|
+
* @param value - Raw serialized value.
|
|
34114
|
+
* @returns Whether the value is a string carrying content.
|
|
34115
|
+
*
|
|
34116
|
+
* @private internal helper of `normalizeAgentMessageProjectChange`
|
|
34117
|
+
*/
|
|
34118
|
+
function isNonEmptyString(value) {
|
|
34119
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
34120
|
+
}
|
|
34121
|
+
/**
|
|
34122
|
+
* Checks that one value is a line count git could have reported.
|
|
34123
|
+
*
|
|
34124
|
+
* @param value - Raw serialized value.
|
|
34125
|
+
* @returns Whether the value is a non-negative finite number.
|
|
34126
|
+
*
|
|
34127
|
+
* @private internal helper of `normalizeAgentMessageProjectChange`
|
|
34128
|
+
*/
|
|
34129
|
+
function isChangeCount(value) {
|
|
34130
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0;
|
|
34131
|
+
}
|
|
34132
|
+
|
|
34133
|
+
/**
|
|
34134
|
+
* Synthetic tool name used for agent-project chips in chat UI.
|
|
34135
|
+
*
|
|
34136
|
+
* The Agents Server emits one such tool call per project an answer viewed or edited, so the chat
|
|
34137
|
+
* shows which projects the agent worked with below the message that touched them.
|
|
34138
|
+
*
|
|
34139
|
+
* @private internal chat-ui marker for touched agent projects
|
|
34140
|
+
*/
|
|
34141
|
+
const AGENT_PROJECT_TOOL_CALL_NAME = 'agent_project_touched';
|
|
34142
|
+
/**
|
|
34143
|
+
* Parses the project-chip payload from one tool result.
|
|
34144
|
+
*
|
|
34145
|
+
* @param result - Raw tool result payload.
|
|
34146
|
+
* @returns Parsed project metadata, or `null` when the result describes no project.
|
|
34147
|
+
*
|
|
34148
|
+
* @private internal helper reused by chip and modal rendering
|
|
34149
|
+
*/
|
|
34150
|
+
function parseAgentProjectToolCallResult(result) {
|
|
34151
|
+
if (!result || typeof result !== 'object' || Array.isArray(result)) {
|
|
34152
|
+
return null;
|
|
34153
|
+
}
|
|
34154
|
+
const candidate = result;
|
|
34155
|
+
if (typeof candidate.projectName !== 'string' || candidate.projectName.trim().length === 0) {
|
|
34156
|
+
return null;
|
|
34157
|
+
}
|
|
34158
|
+
const change = normalizeAgentMessageProjectChange(candidate.change);
|
|
34159
|
+
return {
|
|
34160
|
+
projectName: candidate.projectName.trim(),
|
|
34161
|
+
...pickTrimmedText('displayName', candidate.displayName),
|
|
34162
|
+
...pickTrimmedText('description', candidate.description),
|
|
34163
|
+
...pickTrimmedText('projectHref', candidate.projectHref),
|
|
34164
|
+
...pickTrimmedText('projectUrl', candidate.projectUrl),
|
|
34165
|
+
...pickTrimmedText('runtimeStatusLabel', candidate.runtimeStatusLabel),
|
|
34166
|
+
...pickTrimmedText('sizeLabel', candidate.sizeLabel),
|
|
34167
|
+
...(typeof candidate.isRunning === 'boolean' ? { isRunning: candidate.isRunning } : {}),
|
|
34168
|
+
...(typeof candidate.isGitRepository === 'boolean' ? { isGitRepository: candidate.isGitRepository } : {}),
|
|
34169
|
+
...(typeof candidate.fileCount === 'number' && Number.isFinite(candidate.fileCount) && candidate.fileCount >= 0
|
|
34170
|
+
? { fileCount: candidate.fileCount }
|
|
34171
|
+
: {}),
|
|
34172
|
+
...(change ? { change } : {}),
|
|
34173
|
+
};
|
|
34174
|
+
}
|
|
34175
|
+
/**
|
|
34176
|
+
* Keeps one optional text field only when it carries content.
|
|
34177
|
+
*
|
|
34178
|
+
* @param fieldName - Name of the payload field.
|
|
34179
|
+
* @param value - Raw field value.
|
|
34180
|
+
* @returns Object holding the trimmed field, or an empty object.
|
|
34181
|
+
*
|
|
34182
|
+
* @private internal helper of `parseAgentProjectToolCallResult`
|
|
34183
|
+
*/
|
|
34184
|
+
function pickTrimmedText(fieldName, value) {
|
|
34185
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
34186
|
+
return {};
|
|
34187
|
+
}
|
|
34188
|
+
return { [fieldName]: value.trim() };
|
|
34189
|
+
}
|
|
34190
|
+
/**
|
|
34191
|
+
* Resolves the chip label of one touched agent project.
|
|
34192
|
+
*
|
|
34193
|
+
* @param projectResult - Parsed project metadata.
|
|
34194
|
+
* @returns Human-readable project name.
|
|
34195
|
+
*
|
|
34196
|
+
* @private internal helper reused by chip and modal rendering
|
|
34197
|
+
*/
|
|
34198
|
+
function resolveAgentProjectToolCallLabel(projectResult) {
|
|
34199
|
+
return projectResult.displayName || projectResult.projectName;
|
|
34200
|
+
}
|
|
34201
|
+
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
34202
|
+
|
|
34203
|
+
/**
|
|
34204
|
+
* Validates one already-parsed JSON value as a touched external source.
|
|
34205
|
+
*
|
|
34206
|
+
* @param value - Raw serialized source.
|
|
34207
|
+
* @returns The typed source, or `null` when the value does not match the expected shape, so
|
|
34208
|
+
* consumers can silently skip foreign or malformed entries.
|
|
34209
|
+
*
|
|
34210
|
+
* @private internal utility of the agent-message runtime
|
|
34211
|
+
*/
|
|
34212
|
+
function normalizeAgentMessageTouchedExternalSource(value) {
|
|
34213
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
34214
|
+
return null;
|
|
34215
|
+
}
|
|
34216
|
+
const candidate = value;
|
|
34217
|
+
if (!isAgentMessageTouchedExternalSourceKind(candidate.kind)) {
|
|
34218
|
+
return null;
|
|
34219
|
+
}
|
|
34220
|
+
if (typeof candidate.name !== 'string' || candidate.name.trim().length === 0) {
|
|
34221
|
+
return null;
|
|
34222
|
+
}
|
|
34223
|
+
return {
|
|
34224
|
+
kind: candidate.kind,
|
|
34225
|
+
name: candidate.name.trim(),
|
|
34226
|
+
...(typeof candidate.url === 'string' && candidate.url.trim().length > 0 ? { url: candidate.url.trim() } : {}),
|
|
34227
|
+
};
|
|
34228
|
+
}
|
|
34229
|
+
/**
|
|
34230
|
+
* Checks that one value is a known external source category.
|
|
34231
|
+
*
|
|
34232
|
+
* @param value - Raw serialized kind.
|
|
34233
|
+
* @returns Whether the value names one of the supported categories.
|
|
34234
|
+
*
|
|
34235
|
+
* @private internal helper of `normalizeAgentMessageTouchedExternalSource`
|
|
34236
|
+
*/
|
|
34237
|
+
function isAgentMessageTouchedExternalSourceKind(value) {
|
|
34238
|
+
return value === 'integration' || value === 'website' || value === 'search';
|
|
34239
|
+
}
|
|
34240
|
+
|
|
34241
|
+
/**
|
|
34242
|
+
* Synthetic tool name used for external-source chips in chat UI.
|
|
34243
|
+
*
|
|
34244
|
+
* The Agents Server emits one such tool call per source outside the agent an answer viewed or
|
|
34245
|
+
* edited, so the chat shows which services, websites and searches the agent really reached below
|
|
34246
|
+
* the message that touched them. Work the agent does inside itself emits nothing.
|
|
34247
|
+
*
|
|
34248
|
+
* @private internal chat-ui marker for touched external sources
|
|
34249
|
+
*/
|
|
34250
|
+
const EXTERNAL_SOURCE_TOOL_CALL_NAME = 'external_source_touched';
|
|
34251
|
+
/**
|
|
34252
|
+
* Emoji shown in the chip of each external source category.
|
|
34253
|
+
*
|
|
34254
|
+
* @private internal chat-ui constant for touched external sources
|
|
34255
|
+
*/
|
|
34256
|
+
const EXTERNAL_SOURCE_EMOJI_BY_KIND = {
|
|
34257
|
+
integration: '🔌',
|
|
34258
|
+
website: '🌐',
|
|
34259
|
+
search: '🔎',
|
|
34260
|
+
};
|
|
34261
|
+
/**
|
|
34262
|
+
* Parses the external-source chip payload from one tool result.
|
|
34263
|
+
*
|
|
34264
|
+
* @param result - Raw tool result payload.
|
|
34265
|
+
* @returns Parsed source metadata, or `null` when the result describes no external source.
|
|
34266
|
+
*
|
|
34267
|
+
* @private internal helper reused by chip and modal rendering
|
|
34268
|
+
*/
|
|
34269
|
+
function parseExternalSourceToolCallResult(result) {
|
|
34270
|
+
return normalizeAgentMessageTouchedExternalSource(result);
|
|
34271
|
+
}
|
|
34272
|
+
/**
|
|
34273
|
+
* Resolves the chip label of one touched external source.
|
|
34274
|
+
*
|
|
34275
|
+
* @param externalSource - Parsed source metadata.
|
|
34276
|
+
* @returns User-facing name of the source.
|
|
34277
|
+
*
|
|
34278
|
+
* @private internal helper reused by chip and modal rendering
|
|
34279
|
+
*/
|
|
34280
|
+
function resolveExternalSourceToolCallLabel(externalSource) {
|
|
34281
|
+
return externalSource.name;
|
|
34282
|
+
}
|
|
34283
|
+
/**
|
|
34284
|
+
* Resolves the chip emoji of one touched external source.
|
|
34285
|
+
*
|
|
34286
|
+
* @param externalSource - Parsed source metadata.
|
|
34287
|
+
* @returns Emoji telling apart an integration, a website and a search.
|
|
34288
|
+
*
|
|
34289
|
+
* @private internal helper reused by chip and modal rendering
|
|
34290
|
+
*/
|
|
34291
|
+
function resolveExternalSourceToolCallEmoji(externalSource) {
|
|
34292
|
+
return EXTERNAL_SOURCE_EMOJI_BY_KIND[externalSource.kind];
|
|
34293
|
+
}
|
|
34294
|
+
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
34295
|
+
|
|
33254
34296
|
/**
|
|
33255
34297
|
* Seconds in one minute.
|
|
33256
34298
|
*
|
|
@@ -33371,12 +34413,34 @@ function formatToolCallTranslationTemplate(template, variables) {
|
|
|
33371
34413
|
return Object.entries(variables).reduce((formatted, [key, value]) => formatted.replace(new RegExp(`\\{${key}\\}`, 'g'), String(value)), template);
|
|
33372
34414
|
}
|
|
33373
34415
|
|
|
34416
|
+
/**
|
|
34417
|
+
* Tool name of one scheduled wake-up, used by every producer of timeout chips.
|
|
34418
|
+
*
|
|
34419
|
+
* @private internal timeout-chat constant
|
|
34420
|
+
*/
|
|
34421
|
+
const SET_TIMEOUT_TOOL_CALL_NAME = 'set_timeout';
|
|
34422
|
+
/**
|
|
34423
|
+
* Tool name of one re-planned wake-up, used by every producer of timeout chips.
|
|
34424
|
+
*
|
|
34425
|
+
* @private internal timeout-chat constant
|
|
34426
|
+
*/
|
|
34427
|
+
const UPDATE_TIMEOUT_TOOL_CALL_NAME = 'update_timeout';
|
|
34428
|
+
/**
|
|
34429
|
+
* Tool name of one cancelled wake-up, used by every producer of timeout chips.
|
|
34430
|
+
*
|
|
34431
|
+
* @private internal timeout-chat constant
|
|
34432
|
+
*/
|
|
34433
|
+
const CANCEL_TIMEOUT_TOOL_CALL_NAME = 'cancel_timeout';
|
|
33374
34434
|
/**
|
|
33375
34435
|
* Tool names handled by timeout-specific chat presentation.
|
|
33376
34436
|
*
|
|
33377
34437
|
* @private internal timeout-chat constant
|
|
33378
34438
|
*/
|
|
33379
|
-
const TIMEOUT_TOOL_NAMES = [
|
|
34439
|
+
const TIMEOUT_TOOL_NAMES = [
|
|
34440
|
+
SET_TIMEOUT_TOOL_CALL_NAME,
|
|
34441
|
+
UPDATE_TIMEOUT_TOOL_CALL_NAME,
|
|
34442
|
+
CANCEL_TIMEOUT_TOOL_CALL_NAME,
|
|
34443
|
+
];
|
|
33380
34444
|
/**
|
|
33381
34445
|
* Milliseconds in one second.
|
|
33382
34446
|
*
|
|
@@ -33418,7 +34482,7 @@ const SECONDS_VISIBILITY_THRESHOLD_SECONDS = 3 * MINUTE_IN_SECONDS;
|
|
|
33418
34482
|
*
|
|
33419
34483
|
* @private internal utility of `<Chat/>`
|
|
33420
34484
|
*/
|
|
33421
|
-
function isTimeoutToolCallName
|
|
34485
|
+
function isTimeoutToolCallName(toolName) {
|
|
33422
34486
|
return TIMEOUT_TOOL_NAMES.includes(toolName);
|
|
33423
34487
|
}
|
|
33424
34488
|
/**
|
|
@@ -33428,7 +34492,7 @@ function isTimeoutToolCallName$1(toolName) {
|
|
|
33428
34492
|
*/
|
|
33429
34493
|
function resolveTimeoutToolCallPresentation(options) {
|
|
33430
34494
|
const { toolCallName, args, resultRaw, locale } = options;
|
|
33431
|
-
if (!isTimeoutToolCallName
|
|
34495
|
+
if (!isTimeoutToolCallName(toolCallName)) {
|
|
33432
34496
|
return null;
|
|
33433
34497
|
}
|
|
33434
34498
|
const timeoutToolCallCoreData = resolveTimeoutToolCallCoreData({
|
|
@@ -33542,7 +34606,13 @@ function formatTimeoutDurationCompact(milliseconds) {
|
|
|
33542
34606
|
/**
|
|
33543
34607
|
* Converts timeout duration into natural language sentence fragments.
|
|
33544
34608
|
*
|
|
33545
|
-
*
|
|
34609
|
+
* Shared by every timeout surface: the chat chips, the goal-chat planned messages of the Agents
|
|
34610
|
+
* Server, and the planned-message prompt section of the agent-folder runner.
|
|
34611
|
+
*
|
|
34612
|
+
* @param milliseconds - Duration or repeat interval in milliseconds.
|
|
34613
|
+
* @returns Label such as `5 minutes` or `1 hour 30 minutes`.
|
|
34614
|
+
*
|
|
34615
|
+
* @private internal utility of `<Chat/>` and the Agents Server planned messages
|
|
33546
34616
|
*/
|
|
33547
34617
|
function formatTimeoutDurationHuman(milliseconds) {
|
|
33548
34618
|
const normalizedMilliseconds = Math.max(0, Math.floor(milliseconds));
|
|
@@ -34057,6 +35127,8 @@ const MEMORY_TOOL_CALL_NAMES = new Set(['retrieve_user_memory', 'store_user_memo
|
|
|
34057
35127
|
*/
|
|
34058
35128
|
const SPECIALIZED_TOOL_CALL_CHIPLET_RESOLVERS = [
|
|
34059
35129
|
resolveWalletCredentialChipletInfo,
|
|
35130
|
+
resolveAgentProjectToolCallChipletInfo,
|
|
35131
|
+
resolveExternalSourceToolCallChipletInfo,
|
|
34060
35132
|
resolveTeamToolCallChipletInfo,
|
|
34061
35133
|
resolveTimeToolCallChipletInfo,
|
|
34062
35134
|
resolveEmailToolCallChipletInfo,
|
|
@@ -34083,6 +35155,8 @@ function buildToolCallChipText(chipletInfo) {
|
|
|
34083
35155
|
const TOOL_TITLES = {
|
|
34084
35156
|
[ASSISTANT_PREPARATION_TOOL_CALL_NAME]: { title: 'Preparing agent', emoji: '✨' },
|
|
34085
35157
|
[WALLET_CREDENTIAL_TOOL_CALL_NAME]: { title: 'Credential used', emoji: '🔐' },
|
|
35158
|
+
[AGENT_PROJECT_TOOL_CALL_NAME]: { title: 'Project', emoji: '📁' },
|
|
35159
|
+
[EXTERNAL_SOURCE_TOOL_CALL_NAME]: { title: 'External source', emoji: '🌐' },
|
|
34086
35160
|
'self-learning': { title: 'self-learning', emoji: '🧠' },
|
|
34087
35161
|
retrieve_user_memory: { title: 'Reading memory', emoji: '🧠' },
|
|
34088
35162
|
store_user_memory: { title: 'Storing memory', emoji: '🧠' },
|
|
@@ -34210,7 +35284,7 @@ function resolveToolCallEmoji(toolName) {
|
|
|
34210
35284
|
* @private utility of `<Chat/>`
|
|
34211
35285
|
*/
|
|
34212
35286
|
function resolveToolCallChipletTimeoutPresentation(toolName, args, resultRaw, locale) {
|
|
34213
|
-
if (!isTimeoutToolCallName
|
|
35287
|
+
if (!isTimeoutToolCallName(toolName)) {
|
|
34214
35288
|
return null;
|
|
34215
35289
|
}
|
|
34216
35290
|
return resolveTimeoutToolCallPresentation({
|
|
@@ -34236,6 +35310,47 @@ function resolveWalletCredentialChipletInfo(context) {
|
|
|
34236
35310
|
}
|
|
34237
35311
|
return createEmojiToolCallChipletInfo(context, walletCredentialResult.credentialName);
|
|
34238
35312
|
}
|
|
35313
|
+
/**
|
|
35314
|
+
* Resolves the project-name chip label for touched agent projects.
|
|
35315
|
+
*
|
|
35316
|
+
* @param context - Shared chiplet resolution context.
|
|
35317
|
+
* @returns Chiplet info when the tool call marks a touched project, otherwise `null`.
|
|
35318
|
+
*
|
|
35319
|
+
* @private utility of `<Chat/>`
|
|
35320
|
+
*/
|
|
35321
|
+
function resolveAgentProjectToolCallChipletInfo(context) {
|
|
35322
|
+
if (context.toolCall.name !== AGENT_PROJECT_TOOL_CALL_NAME) {
|
|
35323
|
+
return null;
|
|
35324
|
+
}
|
|
35325
|
+
const projectResult = parseAgentProjectToolCallResult(context.resultRaw);
|
|
35326
|
+
if (!projectResult) {
|
|
35327
|
+
return null;
|
|
35328
|
+
}
|
|
35329
|
+
return createEmojiToolCallChipletInfo(context, resolveAgentProjectToolCallLabel(projectResult));
|
|
35330
|
+
}
|
|
35331
|
+
/**
|
|
35332
|
+
* Resolves the source-name chip label for touched external sources.
|
|
35333
|
+
*
|
|
35334
|
+
* The emoji tells apart an integration, a website and a search, so it overrides the single emoji
|
|
35335
|
+
* registered for the tool name itself.
|
|
35336
|
+
*
|
|
35337
|
+
* @param context - Shared chiplet resolution context.
|
|
35338
|
+
* @returns Chiplet info when the tool call marks a touched external source, otherwise `null`.
|
|
35339
|
+
*
|
|
35340
|
+
* @private utility of `<Chat/>`
|
|
35341
|
+
*/
|
|
35342
|
+
function resolveExternalSourceToolCallChipletInfo(context) {
|
|
35343
|
+
if (context.toolCall.name !== EXTERNAL_SOURCE_TOOL_CALL_NAME) {
|
|
35344
|
+
return null;
|
|
35345
|
+
}
|
|
35346
|
+
const externalSource = parseExternalSourceToolCallResult(context.resultRaw);
|
|
35347
|
+
if (!externalSource) {
|
|
35348
|
+
return null;
|
|
35349
|
+
}
|
|
35350
|
+
return {
|
|
35351
|
+
text: `${resolveExternalSourceToolCallEmoji(externalSource)} ${resolveExternalSourceToolCallLabel(externalSource)}`,
|
|
35352
|
+
};
|
|
35353
|
+
}
|
|
34239
35354
|
/**
|
|
34240
35355
|
* Resolves a chip label and agent metadata for TEAM tool calls.
|
|
34241
35356
|
*
|
|
@@ -36034,7 +37149,7 @@ function createAdvancedToolCallPayloadSections(toolCall, availableTools) {
|
|
|
36034
37149
|
{ id: 'available-tools', title: 'Available tools', payload: availableTools !== null && availableTools !== void 0 ? availableTools : [] },
|
|
36035
37150
|
{ id: 'event', title: 'Full event', payload: toolCall },
|
|
36036
37151
|
];
|
|
36037
|
-
if (isTimeoutToolCallName
|
|
37152
|
+
if (isTimeoutToolCallName(toolCall.name)) {
|
|
36038
37153
|
const timeoutPresentation = resolveTimeoutToolCallPresentation({
|
|
36039
37154
|
toolCallName: toolCall.name,
|
|
36040
37155
|
args: parsedArguments,
|
|
@@ -36208,6 +37323,124 @@ function getToolCallTimestamp(toolCall) {
|
|
|
36208
37323
|
return Number.isNaN(date.getTime()) ? null : date;
|
|
36209
37324
|
}
|
|
36210
37325
|
|
|
37326
|
+
/**
|
|
37327
|
+
* Line prefixes of unified-diff metadata, which is shown dimmed instead of as a change.
|
|
37328
|
+
*/
|
|
37329
|
+
const AGENT_PROJECT_DIFF_META_LINE_PREFIXES = [
|
|
37330
|
+
'diff ',
|
|
37331
|
+
'index ',
|
|
37332
|
+
'--- ',
|
|
37333
|
+
'+++ ',
|
|
37334
|
+
'new file',
|
|
37335
|
+
'deleted file',
|
|
37336
|
+
'old mode',
|
|
37337
|
+
'new mode',
|
|
37338
|
+
'similarity index',
|
|
37339
|
+
'rename from',
|
|
37340
|
+
'rename to',
|
|
37341
|
+
'Binary files',
|
|
37342
|
+
'\\ No newline',
|
|
37343
|
+
];
|
|
37344
|
+
/**
|
|
37345
|
+
* Renders one unified diff with added, removed and context lines told apart.
|
|
37346
|
+
*
|
|
37347
|
+
* @param options - Diff text and whether it holds only the beginning of the real diff.
|
|
37348
|
+
* @returns Readable diff block.
|
|
37349
|
+
*
|
|
37350
|
+
* @private function of ChatToolCallModal
|
|
37351
|
+
*/
|
|
37352
|
+
function renderAgentProjectDiff(options) {
|
|
37353
|
+
const diffLines = options.diff.split(/\r?\n/u);
|
|
37354
|
+
return (jsxs("div", { className: styles$7.agentProjectDiff, children: [jsx("pre", { className: styles$7.agentProjectDiffCode, children: diffLines.map((diffLine, diffLineIndex) => (jsx("span", { className: classNames(styles$7.agentProjectDiffLine, resolveAgentProjectDiffLineStyle(diffLine)), children: diffLine === '' ? ' ' : diffLine }, `${diffLineIndex}-${diffLine}`))) }), options.isDiffTruncated && (jsx("p", { className: styles$7.agentProjectDiffTruncated, children: "The change is too large to show in full \u2014 open the project to see the rest." }))] }));
|
|
37355
|
+
}
|
|
37356
|
+
/**
|
|
37357
|
+
* Resolves the style of one diff line from its unified-diff prefix.
|
|
37358
|
+
*
|
|
37359
|
+
* @param diffLine - One raw diff line.
|
|
37360
|
+
* @returns Class name of the line, or `undefined` for plain context lines.
|
|
37361
|
+
*
|
|
37362
|
+
* @private function of ChatToolCallModal
|
|
37363
|
+
*/
|
|
37364
|
+
function resolveAgentProjectDiffLineStyle(diffLine) {
|
|
37365
|
+
if (AGENT_PROJECT_DIFF_META_LINE_PREFIXES.some((metaLinePrefix) => diffLine.startsWith(metaLinePrefix))) {
|
|
37366
|
+
return styles$7.agentProjectDiffLineMeta;
|
|
37367
|
+
}
|
|
37368
|
+
if (diffLine.startsWith('@@')) {
|
|
37369
|
+
return styles$7.agentProjectDiffLineHunk;
|
|
37370
|
+
}
|
|
37371
|
+
if (diffLine.startsWith('+')) {
|
|
37372
|
+
return styles$7.agentProjectDiffLineAdded;
|
|
37373
|
+
}
|
|
37374
|
+
if (diffLine.startsWith('-')) {
|
|
37375
|
+
return styles$7.agentProjectDiffLineRemoved;
|
|
37376
|
+
}
|
|
37377
|
+
return undefined;
|
|
37378
|
+
}
|
|
37379
|
+
|
|
37380
|
+
/**
|
|
37381
|
+
* Length of the commit hash shown in the change summary.
|
|
37382
|
+
*/
|
|
37383
|
+
const AGENT_PROJECT_COMMIT_HASH_DISPLAY_LENGTH = 7;
|
|
37384
|
+
/**
|
|
37385
|
+
* Renders the detail view of one project the answer worked with.
|
|
37386
|
+
*
|
|
37387
|
+
* The card answers the two questions a project chip raises: what this project is right now — its
|
|
37388
|
+
* runtime state and where to open it — and what this very message did to it.
|
|
37389
|
+
*
|
|
37390
|
+
* @param options - Parsed project chip payload.
|
|
37391
|
+
* @returns Project details section for the tool modal.
|
|
37392
|
+
*
|
|
37393
|
+
* @private function of ChatToolCallModal
|
|
37394
|
+
*/
|
|
37395
|
+
function renderAgentProjectToolCallDetails(options) {
|
|
37396
|
+
const { project } = options;
|
|
37397
|
+
return (jsxs(Fragment, { children: [jsxs("header", { className: styles$7.toolCallHeader, children: [jsx("span", { className: styles$7.toolCallIcon, "aria-hidden": "true", children: "\uD83D\uDCC1" }), jsxs("div", { className: styles$7.toolCallHeaderMeta, children: [jsx("p", { className: styles$7.toolCallModalLabel, children: "Project" }), jsx("h3", { className: styles$7.toolCallTitle, children: resolveAgentProjectToolCallLabel(project) }), jsx("p", { className: styles$7.toolCallSubtitle, children: project.description || 'Here is what the agent worked with.' })] })] }), jsxs("div", { className: styles$7.toolCallGrid, children: [renderAgentProjectStatusPanel(project), renderAgentProjectFactsPanel(project)] }), renderAgentProjectChangeSection(project.change)] }));
|
|
37398
|
+
}
|
|
37399
|
+
/**
|
|
37400
|
+
* Renders the runtime state of the project together with the ways to open it.
|
|
37401
|
+
*
|
|
37402
|
+
* @param project - Parsed project chip payload.
|
|
37403
|
+
* @returns Status panel.
|
|
37404
|
+
*
|
|
37405
|
+
* @private function of ChatToolCallModal
|
|
37406
|
+
*/
|
|
37407
|
+
function renderAgentProjectStatusPanel(project) {
|
|
37408
|
+
const isRunning = project.isRunning === true;
|
|
37409
|
+
// Note: A chip written before projects reported their state knows nothing, which must not be
|
|
37410
|
+
// shown as a project that is stopped
|
|
37411
|
+
const isRuntimeStateKnown = project.isRunning !== undefined || project.runtimeStatusLabel !== undefined;
|
|
37412
|
+
return (jsxs("section", { className: styles$7.toolCallPanel, children: [jsx("p", { className: styles$7.toolCallPanelTitle, children: "Status" }), isRuntimeStateKnown && (jsxs("p", { className: classNames(styles$7.agentProjectStatus, isRunning ? styles$7.agentProjectStatusRunning : styles$7.agentProjectStatusStopped), children: [jsx("span", { className: styles$7.agentProjectStatusDot, "aria-hidden": "true" }), project.runtimeStatusLabel || (isRunning ? 'Running' : 'Not running')] })), jsxs("div", { className: styles$7.agentProjectLinks, children: [project.projectUrl && (jsx("a", { className: styles$7.agentProjectLink, href: project.projectUrl, target: "_blank", rel: "noreferrer", title: isRunning
|
|
37413
|
+
? 'Open the project in a new tab'
|
|
37414
|
+
: 'The project must run before it can be opened.', children: "Open the project \u2197" })), project.projectHref && (jsx("a", { className: styles$7.agentProjectLink, href: project.projectHref, target: "_blank", rel: "noreferrer", children: "Open the project page \u2197" }))] })] }));
|
|
37415
|
+
}
|
|
37416
|
+
/**
|
|
37417
|
+
* Renders the project facts shown in the header of the project page.
|
|
37418
|
+
*
|
|
37419
|
+
* @param project - Parsed project chip payload.
|
|
37420
|
+
* @returns Facts panel.
|
|
37421
|
+
*
|
|
37422
|
+
* @private function of ChatToolCallModal
|
|
37423
|
+
*/
|
|
37424
|
+
function renderAgentProjectFactsPanel(project) {
|
|
37425
|
+
return (jsxs("section", { className: styles$7.toolCallPanel, children: [jsx("p", { className: styles$7.toolCallPanelTitle, children: "Project" }), jsxs("ul", { className: styles$7.toolCallList, children: [jsxs("li", { className: styles$7.toolCallItem, children: [jsx("span", { className: styles$7.toolCallItemLabel, children: "Folder" }), jsx("span", { className: styles$7.toolCallItemValue, children: project.projectName })] }), project.sizeLabel && (jsxs("li", { className: styles$7.toolCallItem, children: [jsx("span", { className: styles$7.toolCallItemLabel, children: "Size" }), jsxs("span", { className: styles$7.toolCallItemValue, children: [project.sizeLabel, typeof project.fileCount === 'number' &&
|
|
37426
|
+
` in ${project.fileCount} ${project.fileCount === 1 ? 'file' : 'files'}`] })] })), project.isGitRepository !== undefined && (jsxs("li", { className: styles$7.toolCallItem, children: [jsx("span", { className: styles$7.toolCallItemLabel, children: "Version control" }), jsx("span", { className: styles$7.toolCallItemValue, children: project.isGitRepository ? 'Git repository' : 'Not a git repository' })] }))] })] }));
|
|
37427
|
+
}
|
|
37428
|
+
/**
|
|
37429
|
+
* Renders what this very message changed in the project.
|
|
37430
|
+
*
|
|
37431
|
+
* @param change - Commit the answered message created, when it changed anything.
|
|
37432
|
+
* @returns Change section.
|
|
37433
|
+
*
|
|
37434
|
+
* @private function of ChatToolCallModal
|
|
37435
|
+
*/
|
|
37436
|
+
function renderAgentProjectChangeSection(change) {
|
|
37437
|
+
if (!change) {
|
|
37438
|
+
return (jsxs("div", { className: styles$7.agentProjectChange, children: [jsx("p", { className: styles$7.toolCallPanelTitle, children: "Changes in this message" }), jsx("p", { className: styles$7.toolCallEmpty, children: "This message did not change anything in the project." })] }));
|
|
37439
|
+
}
|
|
37440
|
+
return (jsxs("div", { className: styles$7.agentProjectChange, children: [jsx("p", { className: styles$7.toolCallPanelTitle, children: "Changes in this message" }), jsxs("div", { className: styles$7.agentProjectChangeSummary, children: [jsxs("span", { className: styles$7.toolCallSummaryMetaBadge, children: [change.changedFiles.length, " ", change.changedFiles.length === 1 ? 'file' : 'files'] }), jsxs("span", { className: classNames(styles$7.agentProjectChangeCount, styles$7.agentProjectChangeCountAdded), children: ["+", change.insertionCount] }), jsxs("span", { className: classNames(styles$7.agentProjectChangeCount, styles$7.agentProjectChangeCountRemoved), children: ["\u2212", change.deletionCount] }), jsxs("span", { className: styles$7.agentProjectCommit, children: ["commit ", change.commitHash.slice(0, AGENT_PROJECT_COMMIT_HASH_DISPLAY_LENGTH), " \u00B7", ' ', new Date(change.committedAt).toLocaleString()] })] }), change.changedFiles.length > 0 && (jsx("ul", { className: styles$7.agentProjectChangedFiles, children: change.changedFiles.map((changedFile) => (jsxs("li", { className: styles$7.agentProjectChangedFile, children: [jsx("span", { className: styles$7.agentProjectChangedFilePath, children: changedFile.path }), jsxs("span", { className: styles$7.agentProjectChangedFileCounts, children: [jsxs("span", { className: styles$7.agentProjectChangeCountAdded, children: ["+", changedFile.insertionCount] }), ' ', jsxs("span", { className: styles$7.agentProjectChangeCountRemoved, children: ["\u2212", changedFile.deletionCount] })] })] }, changedFile.path))) })), change.diff.trim().length > 0 &&
|
|
37441
|
+
renderAgentProjectDiff({ diff: change.diff, isDiffTruncated: change.isDiffTruncated })] }));
|
|
37442
|
+
}
|
|
37443
|
+
|
|
36211
37444
|
/**
|
|
36212
37445
|
* Renders an email/envelope icon.
|
|
36213
37446
|
*
|
|
@@ -37992,6 +39225,10 @@ function renderToolCallDetails(options) {
|
|
|
37992
39225
|
if (memoryView) {
|
|
37993
39226
|
return memoryView;
|
|
37994
39227
|
}
|
|
39228
|
+
const agentProjectResult = toolCall.name === AGENT_PROJECT_TOOL_CALL_NAME ? parseAgentProjectToolCallResult(resultRaw) : null;
|
|
39229
|
+
if (agentProjectResult) {
|
|
39230
|
+
return renderAgentProjectToolCallDetails({ project: agentProjectResult });
|
|
39231
|
+
}
|
|
37995
39232
|
const walletCredentialResult = toolCall.name === WALLET_CREDENTIAL_TOOL_CALL_NAME ? parseWalletCredentialToolCallResult(resultRaw) : null;
|
|
37996
39233
|
if (walletCredentialResult) {
|
|
37997
39234
|
return renderWalletCredentialToolCallDetails({
|
|
@@ -38121,17 +39358,6 @@ function isSearchToolCallName(toolName) {
|
|
|
38121
39358
|
function isTimeToolCallName(toolName) {
|
|
38122
39359
|
return toolName === 'get_current_time' || toolName === 'useTime';
|
|
38123
39360
|
}
|
|
38124
|
-
/**
|
|
38125
|
-
* Checks whether a tool name should use the timeout renderer.
|
|
38126
|
-
*
|
|
38127
|
-
* @param toolName - Raw tool name.
|
|
38128
|
-
* @returns `true` when the tool is a timeout-like tool.
|
|
38129
|
-
*
|
|
38130
|
-
* @private function of ChatToolCallModal
|
|
38131
|
-
*/
|
|
38132
|
-
function isTimeoutToolCallName(toolName) {
|
|
38133
|
-
return toolName === 'set_timeout' || toolName === 'cancel_timeout';
|
|
38134
|
-
}
|
|
38135
39361
|
/**
|
|
38136
39362
|
* Checks whether a tool name should use the email renderer.
|
|
38137
39363
|
*
|
|
@@ -38453,6 +39679,26 @@ const PauseIcon = ({ size = 16 }) => (jsx("svg", { width: size, height: size, vi
|
|
|
38453
39679
|
*/
|
|
38454
39680
|
const PlayIcon = ({ size = 16 }) => (jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "currentColor", role: "img", "aria-label": "Play", children: jsx("path", { d: "M8 5v14l11-7L8 5z" }) }));
|
|
38455
39681
|
|
|
39682
|
+
/**
|
|
39683
|
+
* Provides stable identifiers for mocked messages that omit them.
|
|
39684
|
+
*
|
|
39685
|
+
* Incremental typing changes the message content on every word. A stable id
|
|
39686
|
+
* lets the chat renderer preserve the message element instead of treating
|
|
39687
|
+
* every content update as a new message.
|
|
39688
|
+
*
|
|
39689
|
+
* @private function of `MockedChat`
|
|
39690
|
+
*/
|
|
39691
|
+
function ensureMockedChatMessageIds(messages) {
|
|
39692
|
+
return messages.map((message, messageIndex) => {
|
|
39693
|
+
if (message.id) {
|
|
39694
|
+
return message;
|
|
39695
|
+
}
|
|
39696
|
+
return {
|
|
39697
|
+
...message,
|
|
39698
|
+
id: `mocked-chat-message-${messageIndex}`,
|
|
39699
|
+
};
|
|
39700
|
+
});
|
|
39701
|
+
}
|
|
38456
39702
|
/**
|
|
38457
39703
|
* Resolves one delay value, including random ranges.
|
|
38458
39704
|
*
|
|
@@ -38733,7 +39979,8 @@ async function simulateMockedChatPlayback(props) {
|
|
|
38733
39979
|
* @public exported from `@promptbook/components`
|
|
38734
39980
|
*/
|
|
38735
39981
|
function MockedChat(props) {
|
|
38736
|
-
const { delayConfig, messages:
|
|
39982
|
+
const { delayConfig, messages: sourceMessages, isResettable = true, isPausable = true, messageOffsetsMs, appendMessagesLocallyOnSend = false, onSimulationComplete, isSaveButtonEnabled = true, ...chatProps } = props;
|
|
39983
|
+
const originalMessages = useMemo(() => ensureMockedChatMessageIds(sourceMessages), [sourceMessages]);
|
|
38737
39984
|
const delays = {
|
|
38738
39985
|
...MOCKED_CHAT_DELAY_CONFIGS.NORMAL_FLOW,
|
|
38739
39986
|
...delayConfig,
|
|
@@ -48457,18 +49704,6 @@ function createBasicAgentModelRequirements(agentName) {
|
|
|
48457
49704
|
}
|
|
48458
49705
|
// TODO: [🐤] Deduplicate `AgentModelRequirements` and `ModelRequirements` model requirements
|
|
48459
49706
|
|
|
48460
|
-
/**
|
|
48461
|
-
* Gets a commitment definition by its type
|
|
48462
|
-
*
|
|
48463
|
-
* @param type The commitment type to look up
|
|
48464
|
-
* @returns The commitment definition or null if not found
|
|
48465
|
-
*
|
|
48466
|
-
* @public exported from `@promptbook/core`
|
|
48467
|
-
*/
|
|
48468
|
-
function getCommitmentDefinition(type) {
|
|
48469
|
-
return COMMITMENT_REGISTRY.find((commitmentDefinition) => commitmentDefinition.type === type) || null;
|
|
48470
|
-
}
|
|
48471
|
-
|
|
48472
49707
|
/**
|
|
48473
49708
|
* Commitment types whose content may contain compact agent references that must be resolved before applying the commitment.
|
|
48474
49709
|
*
|
|
@@ -48775,7 +50010,8 @@ async function augmentAgentModelRequirementsFromSource(requirements, parseResult
|
|
|
48775
50010
|
requirements = await importReferencedFiles(requirements);
|
|
48776
50011
|
requirements = appendMcpServers(requirements, agentSource);
|
|
48777
50012
|
requirements = appendNonCommitmentContent(requirements, parseResult);
|
|
48778
|
-
|
|
50013
|
+
requirements = appendExampleInteractions(requirements, parseResult);
|
|
50014
|
+
return appendUnknownCommitmentContent(requirements, parseResult);
|
|
48779
50015
|
}
|
|
48780
50016
|
/**
|
|
48781
50017
|
* Imports text files referenced by IMPORT commitments and appends their transformed content to the system message.
|
|
@@ -48897,6 +50133,36 @@ function appendNonCommitmentContent(requirements, parseResult) {
|
|
|
48897
50133
|
}
|
|
48898
50134
|
return appendSystemMessageSection(requirements, nonCommitmentContent);
|
|
48899
50135
|
}
|
|
50136
|
+
/**
|
|
50137
|
+
* Appends unknown commitment blocks as final extra context without applying commitment side effects.
|
|
50138
|
+
*
|
|
50139
|
+
* @param requirements - Current requirements snapshot.
|
|
50140
|
+
* @param parseResult - Parsed source including unknown commitment blocks.
|
|
50141
|
+
* @returns Requirements with unknown commitment context appended at the end of the system message.
|
|
50142
|
+
*
|
|
50143
|
+
* @private internal utility of `augmentAgentModelRequirementsFromSource`
|
|
50144
|
+
*/
|
|
50145
|
+
function appendUnknownCommitmentContent(requirements, parseResult) {
|
|
50146
|
+
const unknownCommitmentContent = getUnknownCommitmentContent(parseResult);
|
|
50147
|
+
if (!unknownCommitmentContent) {
|
|
50148
|
+
return requirements;
|
|
50149
|
+
}
|
|
50150
|
+
return appendSystemMessageSection(requirements, unknownCommitmentContent);
|
|
50151
|
+
}
|
|
50152
|
+
/**
|
|
50153
|
+
* Joins unknown commitment blocks into their final extra-context representation.
|
|
50154
|
+
*
|
|
50155
|
+
* @param parseResult - Parsed source including unknown commitment blocks.
|
|
50156
|
+
* @returns Unknown commitment source blocks in their original order.
|
|
50157
|
+
*
|
|
50158
|
+
* @private internal utility of `appendUnknownCommitmentContent`
|
|
50159
|
+
*/
|
|
50160
|
+
function getUnknownCommitmentContent(parseResult) {
|
|
50161
|
+
return parseResult.unknownCommitments
|
|
50162
|
+
.map((commitment) => commitment.source)
|
|
50163
|
+
.filter(Boolean)
|
|
50164
|
+
.join('\n\n');
|
|
50165
|
+
}
|
|
48900
50166
|
/**
|
|
48901
50167
|
* Collects plain-text lines that were not parsed as commitments and should still become part of the final system message.
|
|
48902
50168
|
*
|
|
@@ -49224,6 +50490,245 @@ function stripInlineKnowledgeMetadata(metadata) {
|
|
|
49224
50490
|
return Object.keys(rest).length > 0 ? rest : undefined;
|
|
49225
50491
|
}
|
|
49226
50492
|
|
|
50493
|
+
/**
|
|
50494
|
+
* Pattern matching a markdown section heading (`## Title`) that separates system-message sections
|
|
50495
|
+
*
|
|
50496
|
+
* @private internal constant of `deduplicateSystemMessage`
|
|
50497
|
+
*/
|
|
50498
|
+
const SYSTEM_MESSAGE_SECTION_HEADING_PATTERN = /^##(?!#)\s*(.+?)\s*$/;
|
|
50499
|
+
/**
|
|
50500
|
+
* Pattern matching a fenced code block delimiter which suspends section and block splitting
|
|
50501
|
+
*
|
|
50502
|
+
* @private internal constant of `deduplicateSystemMessage`
|
|
50503
|
+
*/
|
|
50504
|
+
const CODE_FENCE_PATTERN = /^\s*(?:```|~~~)/;
|
|
50505
|
+
/**
|
|
50506
|
+
* Pattern matching a markdown list item which keeps merged bullet lists visually compact
|
|
50507
|
+
*
|
|
50508
|
+
* @private internal constant of `deduplicateSystemMessage`
|
|
50509
|
+
*/
|
|
50510
|
+
const LIST_ITEM_PATTERN = /^\s*(?:[-*+]|\d+[.)])\s/;
|
|
50511
|
+
/**
|
|
50512
|
+
* Removes duplicated instructions from a generated system message
|
|
50513
|
+
*
|
|
50514
|
+
* Commitments are applied one by one, so a commitment used multiple times in one book repeats its whole
|
|
50515
|
+
* section, including the shared guidance preamble. For example two `WRITING RULES` commitments emit the
|
|
50516
|
+
* `## Writing rules` heading and its guidance paragraph twice. This function merges all sections sharing
|
|
50517
|
+
* one heading into the position of their first occurrence and keeps every identical block only once.
|
|
50518
|
+
*
|
|
50519
|
+
* @param systemMessage The assembled system message which may contain repeated sections and blocks
|
|
50520
|
+
* @returns The system message where each section heading and each identical block appears exactly once
|
|
50521
|
+
*
|
|
50522
|
+
* @private internal utility of `createAgentModelRequirementsWithCommitments`
|
|
50523
|
+
*/
|
|
50524
|
+
function deduplicateSystemMessage(systemMessage) {
|
|
50525
|
+
if (!systemMessage.trim()) {
|
|
50526
|
+
return systemMessage;
|
|
50527
|
+
}
|
|
50528
|
+
return splitSystemMessageIntoRegions(systemMessage)
|
|
50529
|
+
.reduce(mergeRegionSharingHeading, [])
|
|
50530
|
+
.map(removeDuplicateBlocksFromRegion)
|
|
50531
|
+
.map(renderRegion)
|
|
50532
|
+
.filter((renderedRegion) => renderedRegion !== '')
|
|
50533
|
+
.join('\n\n');
|
|
50534
|
+
}
|
|
50535
|
+
/**
|
|
50536
|
+
* Splits the system message into the intro region and one region per `## Title` section
|
|
50537
|
+
*
|
|
50538
|
+
* @param systemMessage The system message to split
|
|
50539
|
+
* @returns Regions in their original order, without empty ones
|
|
50540
|
+
*
|
|
50541
|
+
* @private internal utility of `deduplicateSystemMessage`
|
|
50542
|
+
*/
|
|
50543
|
+
function splitSystemMessageIntoRegions(systemMessage) {
|
|
50544
|
+
const regions = [];
|
|
50545
|
+
let headingLine = null;
|
|
50546
|
+
let bodyLines = [];
|
|
50547
|
+
let isInsideCodeFence = false;
|
|
50548
|
+
for (const line of systemMessage.split(/\r?\n/)) {
|
|
50549
|
+
if (CODE_FENCE_PATTERN.test(line)) {
|
|
50550
|
+
isInsideCodeFence = !isInsideCodeFence;
|
|
50551
|
+
}
|
|
50552
|
+
if (isInsideCodeFence || !SYSTEM_MESSAGE_SECTION_HEADING_PATTERN.test(line)) {
|
|
50553
|
+
bodyLines.push(line);
|
|
50554
|
+
continue;
|
|
50555
|
+
}
|
|
50556
|
+
regions.push(createRegion(headingLine, bodyLines));
|
|
50557
|
+
headingLine = line;
|
|
50558
|
+
bodyLines = [];
|
|
50559
|
+
}
|
|
50560
|
+
regions.push(createRegion(headingLine, bodyLines));
|
|
50561
|
+
return regions.filter((region) => region.headingLine !== null || region.blocks.length > 0);
|
|
50562
|
+
}
|
|
50563
|
+
/**
|
|
50564
|
+
* Creates one region from its heading line and its raw body lines
|
|
50565
|
+
*
|
|
50566
|
+
* @param headingLine The original `## Title` line, or `null` for the intro before the first heading
|
|
50567
|
+
* @param bodyLines The raw lines following the heading line
|
|
50568
|
+
* @returns The region with its body already split into blocks
|
|
50569
|
+
*
|
|
50570
|
+
* @private internal utility of `splitSystemMessageIntoRegions`
|
|
50571
|
+
*/
|
|
50572
|
+
function createRegion(headingLine, bodyLines) {
|
|
50573
|
+
return {
|
|
50574
|
+
titleKey: headingLine === null ? null : normalizeSectionTitle(headingLine),
|
|
50575
|
+
headingLine,
|
|
50576
|
+
isBodySeparatedByBlankLine: bodyLines[0] !== undefined && bodyLines[0].trim() === '',
|
|
50577
|
+
blocks: splitBodyIntoBlocks(bodyLines),
|
|
50578
|
+
};
|
|
50579
|
+
}
|
|
50580
|
+
/**
|
|
50581
|
+
* Normalizes a heading line into a key usable for matching sections which belong together
|
|
50582
|
+
*
|
|
50583
|
+
* @param headingLine The original `## Title` line
|
|
50584
|
+
* @returns Lowercased title without the markdown heading prefix
|
|
50585
|
+
*
|
|
50586
|
+
* @private internal utility of `createRegion`
|
|
50587
|
+
*/
|
|
50588
|
+
function normalizeSectionTitle(headingLine) {
|
|
50589
|
+
var _a, _b;
|
|
50590
|
+
return ((_b = (_a = SYSTEM_MESSAGE_SECTION_HEADING_PATTERN.exec(headingLine)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : headingLine).toLowerCase();
|
|
50591
|
+
}
|
|
50592
|
+
/**
|
|
50593
|
+
* Splits raw body lines into blocks separated by blank lines while keeping fenced code blocks intact
|
|
50594
|
+
*
|
|
50595
|
+
* @param bodyLines The raw lines of one region body
|
|
50596
|
+
* @returns Non-empty blocks in their original order
|
|
50597
|
+
*
|
|
50598
|
+
* @private internal utility of `createRegion`
|
|
50599
|
+
*/
|
|
50600
|
+
function splitBodyIntoBlocks(bodyLines) {
|
|
50601
|
+
const blockTexts = [];
|
|
50602
|
+
let blockLines = [];
|
|
50603
|
+
let isInsideCodeFence = false;
|
|
50604
|
+
for (const line of bodyLines) {
|
|
50605
|
+
if (CODE_FENCE_PATTERN.test(line)) {
|
|
50606
|
+
isInsideCodeFence = !isInsideCodeFence;
|
|
50607
|
+
}
|
|
50608
|
+
if (!isInsideCodeFence && line.trim() === '') {
|
|
50609
|
+
blockTexts.push(blockLines.join('\n'));
|
|
50610
|
+
blockLines = [];
|
|
50611
|
+
continue;
|
|
50612
|
+
}
|
|
50613
|
+
blockLines.push(line);
|
|
50614
|
+
}
|
|
50615
|
+
blockTexts.push(blockLines.join('\n'));
|
|
50616
|
+
return blockTexts
|
|
50617
|
+
.filter((blockText) => blockText.trim() !== '')
|
|
50618
|
+
.map((blockText) => ({ text: blockText, isOpeningMergedSection: false }));
|
|
50619
|
+
}
|
|
50620
|
+
/**
|
|
50621
|
+
* Appends one region to the already merged regions, merging it into an earlier region with the same heading
|
|
50622
|
+
*
|
|
50623
|
+
* @param mergedRegions Regions merged so far, used as the reducer accumulator
|
|
50624
|
+
* @param region The next region in original order
|
|
50625
|
+
* @returns The accumulator with the region either appended or merged into its earlier twin
|
|
50626
|
+
*
|
|
50627
|
+
* @private internal utility of `deduplicateSystemMessage`
|
|
50628
|
+
*/
|
|
50629
|
+
function mergeRegionSharingHeading(mergedRegions, region) {
|
|
50630
|
+
const existingRegionIndex = mergedRegions.findIndex((mergedRegion) => region.titleKey !== null && mergedRegion.titleKey === region.titleKey);
|
|
50631
|
+
if (existingRegionIndex === -1) {
|
|
50632
|
+
return [...mergedRegions, region];
|
|
50633
|
+
}
|
|
50634
|
+
return mergedRegions.map((mergedRegion, index) => index !== existingRegionIndex
|
|
50635
|
+
? mergedRegion
|
|
50636
|
+
: {
|
|
50637
|
+
...mergedRegion,
|
|
50638
|
+
blocks: [...mergedRegion.blocks, ...markFirstBlockAsOpeningMergedSection(region.blocks)],
|
|
50639
|
+
});
|
|
50640
|
+
}
|
|
50641
|
+
/**
|
|
50642
|
+
* Marks the first block of a merged section occurrence so the merge seam can be rendered as one list
|
|
50643
|
+
*
|
|
50644
|
+
* @param blocks The blocks of the section occurrence being merged into an earlier section
|
|
50645
|
+
* @returns The same blocks with the first one marked as opening a merged section
|
|
50646
|
+
*
|
|
50647
|
+
* @private internal utility of `mergeRegionSharingHeading`
|
|
50648
|
+
*/
|
|
50649
|
+
function markFirstBlockAsOpeningMergedSection(blocks) {
|
|
50650
|
+
return blocks.map((block, index) => (index === 0 ? { ...block, isOpeningMergedSection: true } : block));
|
|
50651
|
+
}
|
|
50652
|
+
/**
|
|
50653
|
+
* Keeps only the first occurrence of every identical block inside one region
|
|
50654
|
+
*
|
|
50655
|
+
* @param region The region whose blocks may repeat
|
|
50656
|
+
* @returns The region without repeated blocks
|
|
50657
|
+
*
|
|
50658
|
+
* @private internal utility of `deduplicateSystemMessage`
|
|
50659
|
+
*/
|
|
50660
|
+
function removeDuplicateBlocksFromRegion(region) {
|
|
50661
|
+
const alreadyRenderedTexts = new Set();
|
|
50662
|
+
const uniqueBlocks = [];
|
|
50663
|
+
let isMergeSeamPending = false;
|
|
50664
|
+
for (const block of region.blocks) {
|
|
50665
|
+
if (alreadyRenderedTexts.has(block.text)) {
|
|
50666
|
+
// Note: A removed block must still hand its merge seam over to the next block which survives
|
|
50667
|
+
isMergeSeamPending = isMergeSeamPending || block.isOpeningMergedSection;
|
|
50668
|
+
continue;
|
|
50669
|
+
}
|
|
50670
|
+
alreadyRenderedTexts.add(block.text);
|
|
50671
|
+
uniqueBlocks.push({
|
|
50672
|
+
text: block.text,
|
|
50673
|
+
isOpeningMergedSection: block.isOpeningMergedSection || isMergeSeamPending,
|
|
50674
|
+
});
|
|
50675
|
+
isMergeSeamPending = false;
|
|
50676
|
+
}
|
|
50677
|
+
return { ...region, blocks: uniqueBlocks };
|
|
50678
|
+
}
|
|
50679
|
+
/**
|
|
50680
|
+
* Renders one region back into its markdown representation
|
|
50681
|
+
*
|
|
50682
|
+
* @param region The region to render
|
|
50683
|
+
* @returns The heading line together with its joined blocks
|
|
50684
|
+
*
|
|
50685
|
+
* @private internal utility of `deduplicateSystemMessage`
|
|
50686
|
+
*/
|
|
50687
|
+
function renderRegion(region) {
|
|
50688
|
+
const body = joinBlocks(region.blocks);
|
|
50689
|
+
if (region.headingLine === null) {
|
|
50690
|
+
return body;
|
|
50691
|
+
}
|
|
50692
|
+
if (body === '') {
|
|
50693
|
+
return region.headingLine;
|
|
50694
|
+
}
|
|
50695
|
+
return `${region.headingLine}${region.isBodySeparatedByBlankLine ? '\n\n' : '\n'}${body}`;
|
|
50696
|
+
}
|
|
50697
|
+
/**
|
|
50698
|
+
* Joins blocks of one region back together
|
|
50699
|
+
*
|
|
50700
|
+
* @param blocks The blocks to join in their original order
|
|
50701
|
+
* @returns The joined body of one region
|
|
50702
|
+
*
|
|
50703
|
+
* @private internal utility of `renderRegion`
|
|
50704
|
+
*/
|
|
50705
|
+
function joinBlocks(blocks) {
|
|
50706
|
+
return blocks
|
|
50707
|
+
.map((block, index) => index === 0 ? block.text : `${createBlockSeparator(blocks[index - 1], block)}${block.text}`)
|
|
50708
|
+
.join('');
|
|
50709
|
+
}
|
|
50710
|
+
/**
|
|
50711
|
+
* Chooses the separator between two neighboring blocks
|
|
50712
|
+
*
|
|
50713
|
+
* Blocks are normally separated by a blank line, exactly as they were written. Only where two sections were
|
|
50714
|
+
* merged together their lists are joined into one compact list instead of two separate ones.
|
|
50715
|
+
*
|
|
50716
|
+
* @param previousBlock The block rendered before the separator
|
|
50717
|
+
* @param nextBlock The block rendered after the separator
|
|
50718
|
+
* @returns Either a single or a double newline
|
|
50719
|
+
*
|
|
50720
|
+
* @private internal utility of `joinBlocks`
|
|
50721
|
+
*/
|
|
50722
|
+
function createBlockSeparator(previousBlock, nextBlock) {
|
|
50723
|
+
if (!nextBlock.isOpeningMergedSection) {
|
|
50724
|
+
return '\n\n';
|
|
50725
|
+
}
|
|
50726
|
+
const previousBlockLines = previousBlock.text.split('\n');
|
|
50727
|
+
const isListContinuing = LIST_ITEM_PATTERN.test(previousBlockLines[previousBlockLines.length - 1]) &&
|
|
50728
|
+
LIST_ITEM_PATTERN.test(nextBlock.text.split('\n')[0]);
|
|
50729
|
+
return isListContinuing ? '\n' : '\n\n';
|
|
50730
|
+
}
|
|
50731
|
+
|
|
49227
50732
|
/**
|
|
49228
50733
|
* Removes single-hash comment lines (`# Comment`) from a system message
|
|
49229
50734
|
* This is used to clean up the final system message before sending it to the AI model
|
|
@@ -49297,14 +50802,14 @@ function createInitialAgentModelRequirements(agentName, modelName) {
|
|
|
49297
50802
|
* Performs the final system-message cleanup pass after all other augmentation steps are complete.
|
|
49298
50803
|
*
|
|
49299
50804
|
* @param requirements - Fully built requirements before final cleanup.
|
|
49300
|
-
* @returns Requirements with comment lines removed
|
|
50805
|
+
* @returns Requirements with comment lines removed and repeated instructions deduplicated in the final system message.
|
|
49301
50806
|
*
|
|
49302
50807
|
* @private internal utility of `createAgentModelRequirementsWithCommitments`
|
|
49303
50808
|
*/
|
|
49304
50809
|
function finalizeRequirements(requirements) {
|
|
49305
50810
|
return {
|
|
49306
50811
|
...requirements,
|
|
49307
|
-
systemMessage: removeCommentsFromSystemMessage(requirements.systemMessage),
|
|
50812
|
+
systemMessage: deduplicateSystemMessage(removeCommentsFromSystemMessage(requirements.systemMessage)),
|
|
49308
50813
|
};
|
|
49309
50814
|
}
|
|
49310
50815
|
|
|
@@ -49831,28 +51336,28 @@ function parseToolExecutionEnvelope(rawValue) {
|
|
|
49831
51336
|
*/
|
|
49832
51337
|
function buildToolInvocationScript(options) {
|
|
49833
51338
|
const { functionName, functionArgsExpression } = options;
|
|
49834
|
-
return `
|
|
49835
|
-
|
|
49836
|
-
|
|
49837
|
-
|
|
49838
|
-
|
|
49839
|
-
|
|
51339
|
+
return spaceTrim$1((block) => `
|
|
51340
|
+
const args = ${block(functionArgsExpression)};
|
|
51341
|
+
const runtimeContextRaw =
|
|
51342
|
+
typeof ${TOOL_RUNTIME_CONTEXT_PARAMETER} === 'undefined'
|
|
51343
|
+
? undefined
|
|
51344
|
+
: ${TOOL_RUNTIME_CONTEXT_PARAMETER};
|
|
49840
51345
|
|
|
49841
|
-
|
|
49842
|
-
|
|
49843
|
-
|
|
51346
|
+
if (runtimeContextRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
|
|
51347
|
+
args.${TOOL_RUNTIME_CONTEXT_ARGUMENT} = runtimeContextRaw;
|
|
51348
|
+
}
|
|
49844
51349
|
|
|
49845
|
-
|
|
49846
|
-
|
|
49847
|
-
|
|
49848
|
-
|
|
51350
|
+
const toolProgressTokenRaw =
|
|
51351
|
+
typeof ${TOOL_PROGRESS_TOKEN_PARAMETER} === 'undefined'
|
|
51352
|
+
? undefined
|
|
51353
|
+
: ${TOOL_PROGRESS_TOKEN_PARAMETER};
|
|
49849
51354
|
|
|
49850
|
-
|
|
49851
|
-
|
|
49852
|
-
|
|
51355
|
+
if (toolProgressTokenRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
|
|
51356
|
+
args.${TOOL_PROGRESS_TOKEN_ARGUMENT} = toolProgressTokenRaw;
|
|
51357
|
+
}
|
|
49853
51358
|
|
|
49854
|
-
|
|
49855
|
-
|
|
51359
|
+
return await ${functionName}(args);
|
|
51360
|
+
`);
|
|
49856
51361
|
}
|
|
49857
51362
|
|
|
49858
51363
|
/**
|