@cartanova/qgrid-cli 2.4.8 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +18 -11
- package/README.md +18 -11
- package/bundle/.env +0 -0
- package/bundle/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.140.0/helpers/esm}/decorate.js +2 -2
- package/bundle/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.140.0/helpers/esm}/decorateMetadata.js +2 -2
- package/bundle/dist/_virtual/_rolldown/runtime.js +2 -3
- package/bundle/dist/application/monit/log-buffer.js +3 -2
- package/bundle/dist/application/monit/monit.frame.js +5 -6
- package/bundle/dist/application/monit/monit.types.js +1 -2
- package/bundle/dist/application/qgrid/conv-routing.js +1 -2
- package/bundle/dist/application/qgrid/oauth.js +1 -2
- package/bundle/dist/application/qgrid/qgrid-image-generation.js +1 -2
- package/bundle/dist/application/qgrid/qgrid-response-format.js +1 -2
- package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +76 -47
- package/bundle/dist/application/qgrid/qgrid.dispatcher.js +1 -2
- package/bundle/dist/application/qgrid/qgrid.frame.js +73 -97
- package/bundle/dist/application/qgrid/qgrid.types.js +11 -10
- package/bundle/dist/application/qgrid/token-subscriber.js +3 -2
- package/bundle/dist/application/qgrid/token-trigger-setup.js +1 -2
- package/bundle/dist/application/qgrid/tool-emulation.js +1 -2
- package/bundle/dist/application/queries.generated.js +1 -2
- package/bundle/dist/application/request-log/request-log.model.js +116 -47
- package/bundle/dist/application/request-log/request-log.types.js +1 -2
- package/bundle/dist/application/request-log-step/request-log-step.model.js +3 -4
- package/bundle/dist/application/request-log-step/request-log-step.types.js +1 -2
- package/bundle/dist/application/sonamu.generated.js +14 -15
- package/bundle/dist/application/sonamu.generated.sso.js +1 -2
- package/bundle/dist/application/token/token.model.js +3 -4
- package/bundle/dist/application/token/token.types.js +1 -2
- package/bundle/dist/codex-protocol/AbsolutePathBuf.js +0 -1
- package/bundle/dist/codex-protocol/AgentPath.js +0 -1
- package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/AuthMode.js +0 -1
- package/bundle/dist/codex-protocol/ClientInfo.js +0 -1
- package/bundle/dist/codex-protocol/ClientNotification.js +0 -1
- package/bundle/dist/codex-protocol/ClientRequest.js +0 -1
- package/bundle/dist/codex-protocol/CollaborationMode.js +0 -1
- package/bundle/dist/codex-protocol/ContentItem.js +0 -1
- package/bundle/dist/codex-protocol/ConversationGitInfo.js +0 -1
- package/bundle/dist/codex-protocol/ConversationSummary.js +0 -1
- package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/FileChange.js +0 -1
- package/bundle/dist/codex-protocol/ForcedLoginMethod.js +0 -1
- package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +0 -1
- package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/GetAuthStatusParams.js +0 -1
- package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +0 -1
- package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +0 -1
- package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +0 -1
- package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +0 -1
- package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +0 -1
- package/bundle/dist/codex-protocol/GitSha.js +0 -1
- package/bundle/dist/codex-protocol/ImageDetail.js +0 -1
- package/bundle/dist/codex-protocol/InitializeCapabilities.js +0 -1
- package/bundle/dist/codex-protocol/InitializeParams.js +0 -1
- package/bundle/dist/codex-protocol/InitializeResponse.js +0 -1
- package/bundle/dist/codex-protocol/InputModality.js +0 -1
- package/bundle/dist/codex-protocol/InternalSessionSource.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellAction.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellExecAction.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellStatus.js +0 -1
- package/bundle/dist/codex-protocol/MessagePhase.js +0 -1
- package/bundle/dist/codex-protocol/ModeKind.js +0 -1
- package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +0 -1
- package/bundle/dist/codex-protocol/ParsedCommand.js +0 -1
- package/bundle/dist/codex-protocol/Personality.js +0 -1
- package/bundle/dist/codex-protocol/PlanType.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeOutputModality.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeVoice.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeVoicesList.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningEffort.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningItemContent.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningSummary.js +0 -1
- package/bundle/dist/codex-protocol/RequestId.js +0 -1
- package/bundle/dist/codex-protocol/Resource.js +0 -1
- package/bundle/dist/codex-protocol/ResourceContent.js +0 -1
- package/bundle/dist/codex-protocol/ResourceTemplate.js +0 -1
- package/bundle/dist/codex-protocol/ResponseItem.js +0 -1
- package/bundle/dist/codex-protocol/ReviewDecision.js +0 -1
- package/bundle/dist/codex-protocol/ServerNotification.js +0 -1
- package/bundle/dist/codex-protocol/ServerRequest.js +0 -1
- package/bundle/dist/codex-protocol/SessionSource.js +0 -1
- package/bundle/dist/codex-protocol/Settings.js +0 -1
- package/bundle/dist/codex-protocol/SubAgentSource.js +0 -1
- package/bundle/dist/codex-protocol/ThreadId.js +0 -1
- package/bundle/dist/codex-protocol/ThreadMemoryMode.js +0 -1
- package/bundle/dist/codex-protocol/Tool.js +0 -1
- package/bundle/dist/codex-protocol/Verbosity.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchAction.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchContextSize.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchLocation.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchMode.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchToolConfig.js +0 -1
- package/bundle/dist/codex-protocol/index.js +0 -1
- package/bundle/dist/codex-protocol/serde_json/JsonValue.js +0 -1
- package/bundle/dist/codex-protocol/v2/Account.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +0 -1
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppBranding.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppReview.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppScreenshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppToolApproval.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/AskForApproval.js +0 -1
- package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ByteRange.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentState.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/Config.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigEdit.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayer.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +0 -1
- package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +0 -1
- package/bundle/dist/codex-protocol/v2/ErrorNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +0 -1
- package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemPath.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCopyParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWatchParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GitInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookEventName.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookHandlerType.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookRunStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookRunSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallError.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/MemoryCitation.js +0 -1
- package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/MergeStrategy.js +0 -1
- package/bundle/dist/codex-protocol/v2/MigrationDetails.js +0 -1
- package/bundle/dist/codex-protocol/v2/Model.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelVerification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkAccess.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +0 -1
- package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginAvailability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginDetail.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareContext.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginsMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProfileV2.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +0 -1
- package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewTarget.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +0 -1
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/SessionMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/SessionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillDependencies.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/SortDirection.js +0 -1
- package/bundle/dist/codex-protocol/v2/SubagentMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextElement.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextPosition.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextRange.js +0 -1
- package/bundle/dist/codex-protocol/v2/Thread.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoal.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolsV2.js +0 -1
- package/bundle/dist/codex-protocol/v2/Turn.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnError.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnItemsView.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/UserInput.js +0 -1
- package/bundle/dist/codex-protocol/v2/WarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WebSearchAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WriteStatus.js +0 -1
- package/bundle/dist/i18n/en.js +1 -2
- package/bundle/dist/i18n/ko.js +1 -2
- package/bundle/dist/i18n/sd.generated.js +54 -21
- package/bundle/dist/index.js +1 -2
- package/bundle/dist/migrations/20260410171405_create__request_logs.js +1 -2
- package/bundle/dist/migrations/20260410171406_create__tokens.js +1 -2
- package/bundle/dist/migrations/20260411120624_alter_tokens_alter2.js +1 -2
- package/bundle/dist/migrations/20260415113716_alter_tokens_add_ord.js +1 -2
- package/bundle/dist/migrations/20260415134649_alter_request_logs_alter1.js +1 -2
- package/bundle/dist/migrations/20260421223627_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260423180818_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260423182017_alter_request_logs_add2_drop1_alter1.js +1 -2
- package/bundle/dist/migrations/20260423183613_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260518145411_alter_tokens_add2_drop4_alter1.js +1 -2
- package/bundle/dist/migrations/20260520112853_alter_request_logs_add3_alter1.js +1 -2
- package/bundle/dist/migrations/20260520124755_alter_request_logs_drop1_alter1.js +1 -2
- package/bundle/dist/migrations/20260520130420_create__request_log_steps.js +1 -2
- package/bundle/dist/migrations/20260520134908_alter_request_logs_add2_alter8.js +1 -2
- package/bundle/dist/migrations/20260520134909_alter_request_log_steps_add1_alter3.js +1 -2
- package/bundle/dist/migrations/20260520141449_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260521134025_alter_request_log_steps_alter1.js +1 -2
- package/bundle/dist/migrations/20260521134026_alter_request_log_steps_foreigns.js +1 -2
- package/bundle/dist/migrations/20260522181721_alter_request_log_steps_add2_alter1.js +1 -2
- package/bundle/dist/migrations/20260630223950_alter_tokens_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260701105327_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260701105328_alter_request_log_steps_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260705140614_alter_request_logs_add1_alter1.js +1 -2
- package/bundle/dist/migrations/20260706120000_alter_request_logs_add_image_cost.js +1 -2
- package/bundle/dist/migrations/20260710090000_alter_tokens_add_weight.js +1 -2
- package/bundle/dist/migrations/20260718180824_alter_request_logs_add5_alter1.js +1 -2
- package/bundle/dist/migrations/20260718180825_alter_request_log_steps_add7_alter1.js +1 -2
- package/bundle/dist/migrations/20260722174410_alter_request_logs_alter3.js +17 -0
- package/bundle/dist/migrations/20260722174411_alter_request_log_steps_alter3.js +17 -0
- package/bundle/dist/node_modules/.pnpm/@jridgewell_sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.js +255 -4
- package/bundle/dist/node_modules/.pnpm/@vitest_expect@4.1.10/node_modules/@vitest/expect/dist/index.js +1507 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_pretty-format@4.1.10/node_modules/@vitest/pretty-format/dist/index.js +887 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/chunk-artifact.js +2756 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/index.js +8 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/utils.js +8 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_snapshot@4.1.10/node_modules/@vitest/snapshot/dist/index.js +922 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_spy@4.1.10/node_modules/@vitest/spy/dist/index.js +386 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js +121 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/constants.js +51 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/diff.js +1317 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/display.js +561 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/error.js +40 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/helpers.js +272 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/offset.js +27 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/serialize.js +77 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/source-map.js +381 -0
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/timers.js +51 -0
- package/bundle/dist/node_modules/.pnpm/chai@6.2.2/node_modules/chai/index.js +103 -3
- package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.js +1 -1
- package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.js +1 -1
- package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.js +1 -1
- package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.js +1 -1
- package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.js +1 -1
- package/bundle/dist/node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.js +2 -3
- package/bundle/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.js +4 -4
- package/bundle/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.js +2 -2
- package/bundle/dist/node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js +18 -7
- package/bundle/dist/node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.js +18 -3
- package/bundle/dist/node_modules/.pnpm/vite@8.0.3_@emnapi_core@1.11.2_@emnapi_runtime@1.11.2_@types_node@25.0.7_esbuild@0.27.4_2519c2e8d8013fcbc7b443879bc9da6d/node_modules/vite/dist/node/module-runner.js +1265 -0
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +6 -3
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js +8 -8
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +5 -5
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +3 -3
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/index.DdgEv5B1.js +46 -0
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js +66 -6
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js +3044 -0
- package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js +19 -4
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/index.js +28 -0
- package/bundle/dist/server-bootstrap.js +1 -2
- package/bundle/dist/sonamu.config.js +11 -27
- package/bundle/dist/startup-migrations.js +1 -2
- package/bundle/dist/testing/fixture.js +1 -2
- package/bundle/dist/testing/global.js +6 -7
- package/bundle/dist/testing/setup-mocks.js +3 -4
- package/bundle/dist/testing/test-database-name.js +5 -8
- package/bundle/dist/utils/providers/anthropic/anthropic-constants.js +8 -8
- package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +1 -2
- package/bundle/dist/utils/providers/anthropic/anthropic-quota.js +1 -2
- package/bundle/dist/utils/providers/anthropic/claude-session.js +5 -7
- package/bundle/dist/utils/providers/anthropic/stream-json-adapter.js +1 -2
- package/bundle/dist/utils/providers/common/credentials.js +1 -2
- package/bundle/dist/utils/providers/common/model-cost.js +3 -3
- package/bundle/dist/utils/providers/common/provider-dispatcher.js +0 -1
- package/bundle/dist/utils/providers/common/smooth-weighted-round-robin.js +1 -2
- package/bundle/dist/utils/providers/common/strictifier.js +2 -2
- package/bundle/dist/utils/providers/common/token-picker.js +1 -2
- package/bundle/dist/utils/providers/common/ttft.js +1 -2
- package/bundle/dist/utils/providers/openai/codex-rpc.js +4 -2
- package/bundle/dist/utils/providers/openai/codex-worker.js +2 -2
- package/bundle/dist/utils/providers/openai/openai-constants.js +1 -2
- package/bundle/dist/utils/providers/openai/openai-dispatcher.js +103 -40
- package/bundle/dist/utils/providers/openai/openai-quota.js +1 -2
- package/bundle/dist/utils/providers/openai/openai-refresh.js +1 -2
- package/bundle/dist/utils/subset-loaders.js +1 -2
- package/bundle/src/application/monit/monit.frame.test.ts +2 -2
- package/bundle/src/application/monit/monit.frame.ts +2 -2
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +242 -8
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +97 -57
- package/bundle/src/application/qgrid/qgrid.frame.test.ts +400 -96
- package/bundle/src/application/qgrid/qgrid.frame.ts +85 -123
- package/bundle/src/application/qgrid/qgrid.types.ts +35 -27
- package/bundle/src/application/request-log/request-log.entity.json +2 -2
- package/bundle/src/application/request-log/request-log.model.test.ts +325 -21
- package/bundle/src/application/request-log/request-log.model.ts +233 -125
- package/bundle/src/application/request-log-step/request-log-step.entity.json +2 -2
- package/bundle/src/application/sonamu.generated.http +2 -2
- package/bundle/src/application/sonamu.generated.ts +13 -13
- package/bundle/src/i18n/sd.generated.ts +83 -14
- package/bundle/src/migrations/20260722174410_alter_request_logs_alter3.ts +19 -0
- package/bundle/src/migrations/20260722174411_alter_request_log_steps_alter3.ts +19 -0
- package/bundle/src/sonamu.config.ts +5 -23
- package/bundle/src/testing/global.ts +5 -5
- package/bundle/src/testing/test-database-name.test.ts +5 -5
- package/bundle/src/testing/test-database-name.ts +9 -8
- package/bundle/src/utils/providers/anthropic/anthropic-constants.test.ts +10 -6
- package/bundle/src/utils/providers/anthropic/anthropic-constants.ts +9 -5
- package/bundle/src/utils/providers/anthropic/claude-session.test.ts +18 -3
- package/bundle/src/utils/providers/anthropic/claude-session.ts +4 -4
- package/bundle/src/utils/providers/common/model-cost.test.ts +1 -0
- package/bundle/src/utils/providers/common/model-cost.ts +1 -0
- package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +440 -0
- package/bundle/src/utils/providers/openai/openai-dispatcher.ts +143 -45
- package/bundle/web-dist/client/assets/{index-CmuPjbCl.js → index-B8Qj0LZK.js} +3 -3
- package/bundle/web-dist/client/assets/logs-C7R8Hvyy.js +1 -0
- package/bundle/web-dist/client/assets/{monit-B5Edhvy-.js → monit-Cj2KSodR.js} +1 -1
- package/bundle/web-dist/client/assets/{routes-UPWScORY.js → routes-DI1rjqGY.js} +1 -1
- package/bundle/web-dist/client/assets/{sd.generated-DYuKzBY6.js → sd.generated-DbBC73_z.js} +1 -1
- package/bundle/web-dist/client/assets/{services.generated-D_SkWOo-.js → services.generated-BWyAypSh.js} +1 -1
- package/bundle/web-dist/client/assets/{show-pRp-eZIK.js → show-B9hDSX9F.js} +2 -2
- package/bundle/web-dist/client/assets/{tokens-DJlttxCM.js → tokens-xUexYz3u.js} +1 -1
- package/bundle/web-dist/client/assets/{use-update-token-mutation-CpFGLWUl.js → use-update-token-mutation-DeDBiZiM.js} +1 -1
- package/bundle/web-dist/client/index.html +2 -2
- package/bundle/web-dist/server/assets/{lazyRouteComponent-Cu6IkL8A.js → lazyRouteComponent-BCJr868T.js} +1 -1
- package/bundle/web-dist/server/assets/{logs-Dx2knN2T.js → logs-33YNafdW.js} +32 -11
- package/bundle/web-dist/server/assets/{monit-DU6PLatf.js → monit--9mVsjNU.js} +2 -2
- package/bundle/web-dist/server/assets/{routes-CTco1oJZ.js → routes-BK3Xh1UB.js} +3 -3
- package/bundle/web-dist/server/assets/{sd.generated-qzuRe35X.js → sd.generated-C3gcvRcU.js} +1 -0
- package/bundle/web-dist/server/assets/{services.generated-C8q1M41a.js → services.generated-B2_Auwvk.js} +1 -1
- package/bundle/web-dist/server/assets/{show-B3q8_GDh.js → show-Dxxxe608.js} +15 -9
- package/bundle/web-dist/server/assets/{tokens-Bvjn15h9.js → tokens-BWPVvdfi.js} +3 -3
- package/bundle/web-dist/server/assets/{use-update-token-mutation-BlZo6swF.js → use-update-token-mutation-CNBgTysy.js} +1 -1
- package/bundle/web-dist/server/entry-server.generated.js +23 -23
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +18 -12
- package/package.json +6 -6
- package/skills/qgrid/SKILL.md +4 -0
- package/skills/qgrid/references/ai-sdk-provider-contract.md +28 -2
- package/skills/qgrid/references/anthropic-claude-code-runtime.md +5 -4
- package/skills/qgrid/references/cli-env-and-server-boot.md +20 -8
- package/skills/qgrid/references/decision-rationale.md +4 -0
- package/skills/qgrid/references/docs-workflow.md +10 -0
- package/skills/qgrid/references/openai-codex-runtime.md +11 -3
- package/skills/qgrid/references/provider-runtime-differences.md +3 -3
- package/skills/qgrid/references/request-log-run-lifecycle.md +46 -28
- package/skills/qgrid/references/sonamu-api-web-flow.md +4 -0
- package/skills/qgrid/references/token-auth-quota-lifecycle.md +6 -0
- package/skills/qgrid/references/tool-calling-and-multiturn.md +8 -7
- package/skills/qgrid/references/verification-and-debugging.md +1 -1
- package/bundle/dist/node_modules/.pnpm/@vitest_expect@4.1.2/node_modules/@vitest/expect/dist/index.js +0 -1484
- package/bundle/dist/node_modules/.pnpm/@vitest_pretty-format@4.1.2/node_modules/@vitest/pretty-format/dist/index.js +0 -887
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/chunk-artifact.js +0 -2746
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/index.js +0 -8
- package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/utils.js +0 -8
- package/bundle/dist/node_modules/.pnpm/@vitest_snapshot@4.1.2/node_modules/@vitest/snapshot/dist/index.js +0 -662
- package/bundle/dist/node_modules/.pnpm/@vitest_spy@4.1.2/node_modules/@vitest/spy/dist/index.js +0 -386
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js +0 -82
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/constants.js +0 -48
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/diff.js +0 -1307
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/display.js +0 -558
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/error.js +0 -33
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/helpers.js +0 -226
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/offset.js +0 -27
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/serialize.js +0 -77
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/source-map.js +0 -374
- package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/timers.js +0 -37
- package/bundle/dist/node_modules/.pnpm/vite@8.0.3_@emnapi_core@1.9.2_@emnapi_runtime@1.9.2_@types_node@25.0.7_esbuild@0.27.4_jiti@2.6.1_sass@1.98.0_tsx@4.21.0/node_modules/vite/dist/node/module-runner.js +0 -426
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/chunks/index.DOa3dzoN.js +0 -16
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/chunks/test.p_J6dB8a.js +0 -2910
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/index.js +0 -28
- package/bundle/web-dist/client/assets/logs-cXOsDli3.js +0 -1
package/bundle/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.js
CHANGED
|
@@ -427,6 +427,6 @@ const _path = {
|
|
|
427
427
|
toNamespacedPath
|
|
428
428
|
};
|
|
429
429
|
//#endregion
|
|
430
|
-
export { _path, basename, dirname, extname, format, isAbsolute, join, matchesGlob, normalize
|
|
430
|
+
export { _path as _, normalizeString as a, relative as b, basename as c, dirname as d, extname as e, format as f, normalizeWindowsPath as g, isAbsolute as i, join as j, matchesGlob as m, normalize as n, parse as p, resolve as r, toNamespacedPath as t };
|
|
431
431
|
|
|
432
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aGUuTS1lVGh0TlouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3BhdGhlQDIuMC4zL25vZGVfbW9kdWxlcy9wYXRoZS9kaXN0L3NoYXJlZC9wYXRoZS5NLWVUaHROWi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IF9sYXp5TWF0Y2ggPSAoKSA9PiB7IHZhciBfX2xpYl9fPSgoKT0+e3ZhciBtPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsRz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxUPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscT0ocixlKT0+e2Zvcih2YXIgbiBpbiBlKW0ocixuLHtnZXQ6ZVtuXSxlbnVtZXJhYmxlOnRydWV9KTt9LEg9KHIsZSxuLGEpPT57aWYoZSYmdHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpZm9yKGxldCB0IG9mIEcoZSkpIVQuY2FsbChyLHQpJiZ0IT09biYmbShyLHQse2dldDooKT0+ZVt0XSxlbnVtZXJhYmxlOiEoYT1WKGUsdCkpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gcn0sSj1yPT5IKG0oe30sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KSxyKSx3PXt9O3Eodyx7ZGVmYXVsdDooKT0+cmV9KTt2YXIgQT1yPT5BcnJheS5pc0FycmF5KHIpLGQ9cj0+dHlwZW9mIHI9PVwiZnVuY3Rpb25cIixRPXI9PnIubGVuZ3RoPT09MCxXPXI9PnR5cGVvZiByPT1cIm51bWJlclwiLEs9cj0+dHlwZW9mIHI9PVwib2JqZWN0XCImJnIhPT1udWxsLFg9cj0+ciBpbnN0YW5jZW9mIFJlZ0V4cCxiPXI9PnR5cGVvZiByPT1cInN0cmluZ1wiLGg9cj0+cj09PXZvaWQgMCxZPXI9Pntjb25zdCBlPW5ldyBNYXA7cmV0dXJuIG49Pntjb25zdCBhPWUuZ2V0KG4pO2lmKGEpcmV0dXJuIGE7Y29uc3QgdD1yKG4pO3JldHVybiBlLnNldChuLHQpLHR9fSxycj0ocixlLG49e30pPT57Y29uc3QgYT17Y2FjaGU6e30saW5wdXQ6cixpbmRleDowLGluZGV4TWF4OjAsb3B0aW9uczpuLG91dHB1dDpbXX07aWYodihlKShhKSYmYS5pbmRleD09PXIubGVuZ3RoKXJldHVybiBhLm91dHB1dDt0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwYXJzZSBhdCBpbmRleCAke2EuaW5kZXhNYXh9YCl9LGk9KHIsZSk9PkEocik/ZXIocixlKTpiKHIpP2FyKHIsZSk6bnIocixlKSxlcj0ocixlKT0+e2NvbnN0IG49e307Zm9yKGNvbnN0IGEgb2Ygcil7aWYoYS5sZW5ndGghPT0xKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXI6IFwiJHthfVwiYCk7Y29uc3QgdD1hLmNoYXJDb2RlQXQoMCk7blt0XT10cnVlO31yZXR1cm4gYT0+e2NvbnN0IHQ9YS5pbmRleCxvPWEuaW5wdXQ7Zm9yKDthLmluZGV4PG8ubGVuZ3RoJiZvLmNoYXJDb2RlQXQoYS5pbmRleClpbiBuOylhLmluZGV4Kz0xO2NvbnN0IHU9YS5pbmRleDtpZih1PnQpe2lmKCFoKGUpJiYhYS5vcHRpb25zLnNpbGVudCl7Y29uc3Qgcz1hLmlucHV0LnNsaWNlKHQsdSksYz1kKGUpP2UocyxvLFN0cmluZyh0KSk6ZTtoKGMpfHxhLm91dHB1dC5wdXNoKGMpO31hLmluZGV4TWF4PU1hdGgubWF4KGEuaW5kZXhNYXgsYS5pbmRleCk7fXJldHVybiAgdHJ1ZX19LG5yPShyLGUpPT57Y29uc3Qgbj1yLnNvdXJjZSxhPXIuZmxhZ3MucmVwbGFjZSgveXwkLyxcInlcIiksdD1uZXcgUmVnRXhwKG4sYSk7cmV0dXJuIGcobz0+e3QubGFzdEluZGV4PW8uaW5kZXg7Y29uc3QgdT10LmV4ZWMoby5pbnB1dCk7aWYodSl7aWYoIWgoZSkmJiFvLm9wdGlvbnMuc2lsZW50KXtjb25zdCBzPWQoZSk/ZSguLi51LG8uaW5wdXQsU3RyaW5nKG8uaW5kZXgpKTplO2gocyl8fG8ub3V0cHV0LnB1c2gocyk7fXJldHVybiBvLmluZGV4Kz11WzBdLmxlbmd0aCxvLmluZGV4TWF4PU1hdGgubWF4KG8uaW5kZXhNYXgsby5pbmRleCksdHJ1ZX1lbHNlIHJldHVybiAgZmFsc2V9KX0sYXI9KHIsZSk9Pm49PntpZihuLmlucHV0LnN0YXJ0c1dpdGgocixuLmluZGV4KSl7aWYoIWgoZSkmJiFuLm9wdGlvbnMuc2lsZW50KXtjb25zdCB0PWQoZSk/ZShyLG4uaW5wdXQsU3RyaW5nKG4uaW5kZXgpKTplO2godCl8fG4ub3V0cHV0LnB1c2godCk7fXJldHVybiBuLmluZGV4Kz1yLmxlbmd0aCxuLmluZGV4TWF4PU1hdGgubWF4KG4uaW5kZXhNYXgsbi5pbmRleCksdHJ1ZX1lbHNlIHJldHVybiAgZmFsc2V9LEM9KHIsZSxuLGEpPT57Y29uc3QgdD12KHIpO3JldHVybiBnKF8oTShvPT57bGV0IHU9MDtmb3IoO3U8bjspe2NvbnN0IHM9by5pbmRleDtpZighdChvKXx8KHUrPTEsby5pbmRleD09PXMpKWJyZWFrfXJldHVybiB1Pj1lfSkpKX0sdHI9KHIsZSk9PkMociwwLDEpLGY9KHIsZSk9PkMociwwLDEvMCkseD0ocixlKT0+e2NvbnN0IG49ci5tYXAodik7cmV0dXJuIGcoXyhNKGE9Pntmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0KyspaWYoIW5bdF0oYSkpcmV0dXJuICBmYWxzZTtyZXR1cm4gIHRydWV9KSkpfSxsPShyLGUpPT57Y29uc3Qgbj1yLm1hcCh2KTtyZXR1cm4gZyhfKGE9Pntmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0KyspaWYoblt0XShhKSlyZXR1cm4gIHRydWU7cmV0dXJuICBmYWxzZX0pKX0sTT0ocixlPWZhbHNlKT0+e2NvbnN0IG49dihyKTtyZXR1cm4gYT0+e2NvbnN0IHQ9YS5pbmRleCxvPWEub3V0cHV0Lmxlbmd0aCx1PW4oYSk7cmV0dXJuICghdXx8ZSkmJihhLmluZGV4PXQsYS5vdXRwdXQubGVuZ3RoIT09byYmKGEub3V0cHV0Lmxlbmd0aD1vKSksdX19LF89KHIsZSk9Pntjb25zdCBuPXYocik7cmV0dXJuIG59LGc9KCgpPT57bGV0IHI9MDtyZXR1cm4gZT0+e2NvbnN0IG49dihlKSxhPXIrPTE7cmV0dXJuIHQ9Pnt2YXIgbztpZih0Lm9wdGlvbnMubWVtb2l6YXRpb249PT1mYWxzZSlyZXR1cm4gbih0KTtjb25zdCB1PXQuaW5kZXgscz0obz10LmNhY2hlKVthXXx8KG9bYV09bmV3IE1hcCksYz1zLmdldCh1KTtpZihjPT09ZmFsc2UpcmV0dXJuICBmYWxzZTtpZihXKGMpKXJldHVybiB0LmluZGV4PWMsdHJ1ZTtpZihjKXJldHVybiB0LmluZGV4PWMuaW5kZXgsYy5vdXRwdXQ/Lmxlbmd0aCYmdC5vdXRwdXQucHVzaCguLi5jLm91dHB1dCksdHJ1ZTt7Y29uc3QgWj10Lm91dHB1dC5sZW5ndGg7aWYobih0KSl7Y29uc3QgRD10LmluZGV4LFU9dC5vdXRwdXQubGVuZ3RoO2lmKFU+Wil7Y29uc3QgZWU9dC5vdXRwdXQuc2xpY2UoWixVKTtzLnNldCh1LHtpbmRleDpELG91dHB1dDplZX0pO31lbHNlIHMuc2V0KHUsRCk7cmV0dXJuICB0cnVlfWVsc2UgcmV0dXJuIHMuc2V0KHUsZmFsc2UpLGZhbHNlfX19fSkoKSxFPXI9PntsZXQgZTtyZXR1cm4gbj0+KGV8fChlPXYocigpKSksZShuKSl9LHY9WShyPT57aWYoZChyKSlyZXR1cm4gUShyKT9FKHIpOnI7aWYoYihyKXx8WChyKSlyZXR1cm4gaShyKTtpZihBKHIpKXJldHVybiB4KHIpO2lmKEsocikpcmV0dXJuIGwoT2JqZWN0LnZhbHVlcyhyKSk7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBydWxlXCIpfSksUD1cImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCIsaXI9cj0+e2xldCBlPVwiXCI7Zm9yKDtyPjA7KXtjb25zdCBuPShyLTEpJTI2O2U9UFtuXStlLHI9TWF0aC5mbG9vcigoci0xKS8yNik7fXJldHVybiBlfSxPPXI9PntsZXQgZT0wO2ZvcihsZXQgbj0wLGE9ci5sZW5ndGg7bjxhO24rKyllPWUqMjYrUC5pbmRleE9mKHJbbl0pKzE7cmV0dXJuIGV9LFM9KHIsZSk9PntpZihlPHIpcmV0dXJuIFMoZSxyKTtjb25zdCBuPVtdO2Zvcig7cjw9ZTspbi5wdXNoKHIrKyk7cmV0dXJuIG59LG9yPShyLGUsbik9PlMocixlKS5tYXAoYT0+U3RyaW5nKGEpLnBhZFN0YXJ0KG4sXCIwXCIpKSxSPShyLGUpPT5TKE8ociksTyhlKSkubWFwKGlyKSxwPXI9PnIsej1yPT51cihlPT5ycihlLHIse21lbW9pemF0aW9uOmZhbHNlfSkuam9pbihcIlwiKSksdXI9cj0+e2NvbnN0IGU9e307cmV0dXJuIG49PmVbbl0/PyhlW25dPXIobikpfSxzcj1pKC9eXFwqXFwqXFwvXFwqJC8sXCIuKlwiKSxjcj1pKC9eXFwqXFwqXFwvKFxcKik/KFsgYS16QS1aMC05Ll8tXSspJC8sKHIsZSxuKT0+YC4qJHtlP1wiXCI6XCIoPzpefC8pXCJ9JHtuLnJlcGxhY2VBbGwoXCIuXCIsXCJcXFxcLlwiKX1gKSxscj1pKC9eXFwqXFwqXFwvKFxcKik/KFsgYS16QS1aMC05Ll8tXSopXFx7KFsgYS16QS1aMC05Ll8tXSsoPzosWyBhLXpBLVowLTkuXy1dKykqKVxcfSQvLChyLGUsbixhKT0+YC4qJHtlP1wiXCI6XCIoPzpefC8pXCJ9JHtuLnJlcGxhY2VBbGwoXCIuXCIsXCJcXFxcLlwiKX0oPzoke2EucmVwbGFjZUFsbChcIixcIixcInxcIikucmVwbGFjZUFsbChcIi5cIixcIlxcXFwuXCIpfSlgKSx5PWkoL1xcXFwuLyxwKSxwcj1pKC9bJC4qKz9eKCl7fVtcXF1cXHxdLyxyPT5gXFxcXCR7cn1gKSx2cj1pKC8uLyxwKSxocj1pKC9eKD86ISEpKiEoLiopJC8sKHIsZSk9PmAoPyFeJHtMKGUpfSQpLio/YCksZHI9aSgvXighISkrLyxcIlwiKSxmcj1sKFtocixkcl0pLHhyPWkoL1xcLyhcXCpcXCpcXC8pKy8sXCIoPzovLisvfC8pXCIpLGdyPWkoL14oXFwqXFwqXFwvKSsvLFwiKD86XnwuKi8pXCIpLG1yPWkoL1xcLyhcXCpcXCopJC8sXCIoPzovLip8JClcIiksX3I9aSgvXFwqXFwqLyxcIi4qXCIpLGo9bChbeHIsZ3IsbXIsX3JdKSxTcj1pKC9cXCpcXC8oPyFcXCpcXCpcXC8pLyxcIlteL10qL1wiKSx5cj1pKC9cXCovLFwiW14vXSpcIiksTj1sKFtTcix5cl0pLGs9aShcIj9cIixcIlteL11cIiksJHI9aShcIltcIixwKSx3cj1pKFwiXVwiLHApLEFyPWkoL1shXl0vLFwiXi9cIiksYnI9aSgvW2Etel0tW2Etel18WzAtOV0tWzAtOV0vaSxwKSxDcj1pKC9bJC4qKz9eKCl7fVtcXHxdLyxyPT5gXFxcXCR7cn1gKSxNcj1pKC9bXlxcXV0vLHApLEVyPWwoW3ksQ3IsYnIsTXJdKSxCPXgoWyRyLHRyKEFyKSxmKEVyKSx3cl0pLFByPWkoXCJ7XCIsXCIoPzpcIiksT3I9aShcIn1cIixcIilcIiksUnI9aSgvKFxcZCspXFwuXFwuKFxcZCspLywocixlLG4pPT5vcigrZSwrbixNYXRoLm1pbihlLmxlbmd0aCxuLmxlbmd0aCkpLmpvaW4oXCJ8XCIpKSx6cj1pKC8oW2Etel0rKVxcLlxcLihbYS16XSspLywocixlLG4pPT5SKGUsbikuam9pbihcInxcIikpLGpyPWkoLyhbQS1aXSspXFwuXFwuKFtBLVpdKykvLChyLGUsbik9PlIoZS50b0xvd2VyQ2FzZSgpLG4udG9Mb3dlckNhc2UoKSkuam9pbihcInxcIikudG9VcHBlckNhc2UoKSksTnI9bChbUnIsenIsanJdKSxJPXgoW1ByLE5yLE9yXSksa3I9aShcIntcIixcIig/OlwiKSxCcj1pKFwifVwiLFwiKVwiKSxJcj1pKFwiLFwiLFwifFwiKSxGcj1pKC9bJC4qKz9eKCl7W1xcXVxcfF0vLHI9PmBcXFxcJHtyfWApLExyPWkoL1tefV0vLHApLFpyPUUoKCk9PkYpLERyPWwoW2osTixrLEIsSSxacix5LEZyLElyLExyXSksRj14KFtrcixmKERyKSxCcl0pLFVyPWYobChbc3IsY3IsbHIsZnIsaixOLGssQixJLEYseSxwcix2cl0pKSxWcj1VcixHcj16KFZyKSxMPUdyLFRyPWkoL1xcXFwuLyxwKSxxcj1pKC8uLyxwKSxIcj1pKC9cXCpcXCpcXCorLyxcIipcIiksSnI9aSgvKFteL3tbKCFdKVxcKlxcKi8sKHIsZSk9PmAke2V9KmApLFFyPWkoLyhefC4pXFwqXFwqKD89W14qLylcXF19XSkvLChyLGUpPT5gJHtlfSpgKSxXcj1mKGwoW1RyLEhyLEpyLFFyLHFyXSkpLEtyPVdyLFhyPXooS3IpLFlyPVhyLCQ9KHIsZSk9Pntjb25zdCBuPUFycmF5LmlzQXJyYXkocik/cjpbcl07aWYoIW4ubGVuZ3RoKXJldHVybiAgZmFsc2U7Y29uc3QgYT1uLm1hcCgkLmNvbXBpbGUpLHQ9bi5ldmVyeShzPT4vKFxcLyg/OlxcKlxcKik/fFxcW1xcL1xcXSkkLy50ZXN0KHMpKSxvPWUucmVwbGFjZSgvW1xcXFxcXC9dKy9nLFwiL1wiKS5yZXBsYWNlKC9cXC8kLyx0P1wiL1wiOlwiXCIpO3JldHVybiBhLnNvbWUocz0+cy50ZXN0KG8pKX07JC5jb21waWxlPXI9Pm5ldyBSZWdFeHAoYF4ke0woWXIocikpfSRgLFwic1wiKTt2YXIgcmU9JDtyZXR1cm4gSih3KX0pKCk7XG4gcmV0dXJuIF9fbGliX18uZGVmYXVsdCB8fCBfX2xpYl9fOyB9O1xubGV0IF9tYXRjaDtcbmNvbnN0IHplcHRvbWF0Y2ggPSAocGF0aCwgcGF0dGVybikgPT4ge1xuICBpZiAoIV9tYXRjaCkge1xuICAgIF9tYXRjaCA9IF9sYXp5TWF0Y2goKTtcbiAgICBfbGF6eU1hdGNoID0gbnVsbDtcbiAgfVxuICByZXR1cm4gX21hdGNoKHBhdGgsIHBhdHRlcm4pO1xufTtcblxuY29uc3QgX0RSSVZFX0xFVFRFUl9TVEFSVF9SRSA9IC9eW0EtWmEtel06XFwvLztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVdpbmRvd3NQYXRoKGlucHV0ID0gXCJcIikge1xuICBpZiAoIWlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKS5yZXBsYWNlKF9EUklWRV9MRVRURVJfU1RBUlRfUkUsIChyKSA9PiByLnRvVXBwZXJDYXNlKCkpO1xufVxuXG5jb25zdCBfVU5DX1JFR0VYID0gL15bL1xcXFxdezJ9LztcbmNvbnN0IF9JU19BQlNPTFVURV9SRSA9IC9eWy9cXFxcXSg/IVsvXFxcXF0pfF5bL1xcXFxdezJ9KD8hXFwuKXxeW0EtWmEtel06Wy9cXFxcXS87XG5jb25zdCBfRFJJVkVfTEVUVEVSX1JFID0gL15bQS1aYS16XTokLztcbmNvbnN0IF9ST09UX0ZPTERFUl9SRSA9IC9eXFwvKFtBLVphLXpdOik/JC87XG5jb25zdCBfRVhUTkFNRV9SRSA9IC8uKFxcLlteLi9dK3xcXC4pJC87XG5jb25zdCBfUEFUSF9ST09UX1JFID0gL15bL1xcXFxdfF5bYS16QS1aXTpbL1xcXFxdLztcbmNvbnN0IHNlcCA9IFwiL1wiO1xuY29uc3Qgbm9ybWFsaXplID0gZnVuY3Rpb24ocGF0aCkge1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gXCIuXCI7XG4gIH1cbiAgcGF0aCA9IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHBhdGgpO1xuICBjb25zdCBpc1VOQ1BhdGggPSBwYXRoLm1hdGNoKF9VTkNfUkVHRVgpO1xuICBjb25zdCBpc1BhdGhBYnNvbHV0ZSA9IGlzQWJzb2x1dGUocGF0aCk7XG4gIGNvbnN0IHRyYWlsaW5nU2VwYXJhdG9yID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgcGF0aCA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhaXNQYXRoQWJzb2x1dGUpO1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICBpZiAoaXNQYXRoQWJzb2x1dGUpIHtcbiAgICAgIHJldHVybiBcIi9cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYWlsaW5nU2VwYXJhdG9yID8gXCIuL1wiIDogXCIuXCI7XG4gIH1cbiAgaWYgKHRyYWlsaW5nU2VwYXJhdG9yKSB7XG4gICAgcGF0aCArPSBcIi9cIjtcbiAgfVxuICBpZiAoX0RSSVZFX0xFVFRFUl9SRS50ZXN0KHBhdGgpKSB7XG4gICAgcGF0aCArPSBcIi9cIjtcbiAgfVxuICBpZiAoaXNVTkNQYXRoKSB7XG4gICAgaWYgKCFpc1BhdGhBYnNvbHV0ZSkge1xuICAgICAgcmV0dXJuIGAvLy4vJHtwYXRofWA7XG4gICAgfVxuICAgIHJldHVybiBgLy8ke3BhdGh9YDtcbiAgfVxuICByZXR1cm4gaXNQYXRoQWJzb2x1dGUgJiYgIWlzQWJzb2x1dGUocGF0aCkgPyBgLyR7cGF0aH1gIDogcGF0aDtcbn07XG5jb25zdCBqb2luID0gZnVuY3Rpb24oLi4uc2VnbWVudHMpIHtcbiAgbGV0IHBhdGggPSBcIlwiO1xuICBmb3IgKGNvbnN0IHNlZyBvZiBzZWdtZW50cykge1xuICAgIGlmICghc2VnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcGF0aFRyYWlsaW5nID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgICAgIGNvbnN0IHNlZ0xlYWRpbmcgPSBzZWdbMF0gPT09IFwiL1wiO1xuICAgICAgY29uc3QgYm90aCA9IHBhdGhUcmFpbGluZyAmJiBzZWdMZWFkaW5nO1xuICAgICAgaWYgKGJvdGgpIHtcbiAgICAgICAgcGF0aCArPSBzZWcuc2xpY2UoMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXRoICs9IHBhdGhUcmFpbGluZyB8fCBzZWdMZWFkaW5nID8gc2VnIDogYC8ke3NlZ31gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoICs9IHNlZztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoKTtcbn07XG5mdW5jdGlvbiBjd2QoKSB7XG4gIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgcHJvY2Vzcy5jd2QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBwcm9jZXNzLmN3ZCgpLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xuICB9XG4gIHJldHVybiBcIi9cIjtcbn1cbmNvbnN0IHJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmd1bWVudHNfKSB7XG4gIGFyZ3VtZW50c18gPSBhcmd1bWVudHNfLm1hcCgoYXJndW1lbnQpID0+IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKGFyZ3VtZW50KSk7XG4gIGxldCByZXNvbHZlZFBhdGggPSBcIlwiO1xuICBsZXQgcmVzb2x2ZWRBYnNvbHV0ZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpbmRleCA9IGFyZ3VtZW50c18ubGVuZ3RoIC0gMTsgaW5kZXggPj0gLTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGluZGV4LS0pIHtcbiAgICBjb25zdCBwYXRoID0gaW5kZXggPj0gMCA/IGFyZ3VtZW50c19baW5kZXhdIDogY3dkKCk7XG4gICAgaWYgKCFwYXRoIHx8IHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcmVzb2x2ZWRQYXRoID0gYCR7cGF0aH0vJHtyZXNvbHZlZFBhdGh9YDtcbiAgICByZXNvbHZlZEFic29sdXRlID0gaXNBYnNvbHV0ZShwYXRoKTtcbiAgfVxuICByZXNvbHZlZFBhdGggPSBub3JtYWxpemVTdHJpbmcocmVzb2x2ZWRQYXRoLCAhcmVzb2x2ZWRBYnNvbHV0ZSk7XG4gIGlmIChyZXNvbHZlZEFic29sdXRlICYmICFpc0Fic29sdXRlKHJlc29sdmVkUGF0aCkpIHtcbiAgICByZXR1cm4gYC8ke3Jlc29sdmVkUGF0aH1gO1xuICB9XG4gIHJldHVybiByZXNvbHZlZFBhdGgubGVuZ3RoID4gMCA/IHJlc29sdmVkUGF0aCA6IFwiLlwiO1xufTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzID0gXCJcIjtcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgbGV0IGxhc3RTbGFzaCA9IC0xO1xuICBsZXQgZG90cyA9IDA7XG4gIGxldCBjaGFyID0gbnVsbDtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8PSBwYXRoLmxlbmd0aDsgKytpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjaGFyID0gcGF0aFtpbmRleF07XG4gICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoYXIgPSBcIi9cIjtcbiAgICB9XG4gICAgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkgOyBlbHNlIGlmIChkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChyZXMubGVuZ3RoIDwgMiB8fCBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fCByZXNbcmVzLmxlbmd0aCAtIDFdICE9PSBcIi5cIiB8fCByZXNbcmVzLmxlbmd0aCAtIDJdICE9PSBcIi5cIikge1xuICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgY29uc3QgbGFzdFNsYXNoSW5kZXggPSByZXMubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICByZXMgPSBcIlwiO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMgPSByZXMuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlcy5sZW5ndGggLSAxIC0gcmVzLmxhc3RJbmRleE9mKFwiL1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4O1xuICAgICAgICAgICAgZG90cyA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXMgPSBcIlwiO1xuICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwO1xuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXg7XG4gICAgICAgICAgICBkb3RzID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXMgKz0gcmVzLmxlbmd0aCA+IDAgPyBcIi8uLlwiIDogXCIuLlwiO1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzICs9IGAvJHtwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcyA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gaW5kZXggLSBsYXN0U2xhc2ggLSAxO1xuICAgICAgfVxuICAgICAgbGFzdFNsYXNoID0gaW5kZXg7XG4gICAgICBkb3RzID0gMDtcbiAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiLlwiICYmIGRvdHMgIT09IC0xKSB7XG4gICAgICArK2RvdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvdHMgPSAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmNvbnN0IGlzQWJzb2x1dGUgPSBmdW5jdGlvbihwKSB7XG4gIHJldHVybiBfSVNfQUJTT0xVVEVfUkUudGVzdChwKTtcbn07XG5jb25zdCB0b05hbWVzcGFjZWRQYXRoID0gZnVuY3Rpb24ocCkge1xuICByZXR1cm4gbm9ybWFsaXplV2luZG93c1BhdGgocCk7XG59O1xuY29uc3QgZXh0bmFtZSA9IGZ1bmN0aW9uKHApIHtcbiAgaWYgKHAgPT09IFwiLi5cIikgcmV0dXJuIFwiXCI7XG4gIGNvbnN0IG1hdGNoID0gX0VYVE5BTUVfUkUuZXhlYyhub3JtYWxpemVXaW5kb3dzUGF0aChwKSk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaFsxXSB8fCBcIlwiO1xufTtcbmNvbnN0IHJlbGF0aXZlID0gZnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgY29uc3QgX2Zyb20gPSByZXNvbHZlKGZyb20pLnJlcGxhY2UoX1JPT1RfRk9MREVSX1JFLCBcIiQxXCIpLnNwbGl0KFwiL1wiKTtcbiAgY29uc3QgX3RvID0gcmVzb2x2ZSh0bykucmVwbGFjZShfUk9PVF9GT0xERVJfUkUsIFwiJDFcIikuc3BsaXQoXCIvXCIpO1xuICBpZiAoX3RvWzBdWzFdID09PSBcIjpcIiAmJiBfZnJvbVswXVsxXSA9PT0gXCI6XCIgJiYgX2Zyb21bMF0gIT09IF90b1swXSkge1xuICAgIHJldHVybiBfdG8uam9pbihcIi9cIik7XG4gIH1cbiAgY29uc3QgX2Zyb21Db3B5ID0gWy4uLl9mcm9tXTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIF9mcm9tQ29weSkge1xuICAgIGlmIChfdG9bMF0gIT09IHNlZ21lbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBfZnJvbS5zaGlmdCgpO1xuICAgIF90by5zaGlmdCgpO1xuICB9XG4gIHJldHVybiBbLi4uX2Zyb20ubWFwKCgpID0+IFwiLi5cIiksIC4uLl90b10uam9pbihcIi9cIik7XG59O1xuY29uc3QgZGlybmFtZSA9IGZ1bmN0aW9uKHApIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBub3JtYWxpemVXaW5kb3dzUGF0aChwKS5yZXBsYWNlKC9cXC8kLywgXCJcIikuc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKTtcbiAgaWYgKHNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBfRFJJVkVfTEVUVEVSX1JFLnRlc3Qoc2VnbWVudHNbMF0pKSB7XG4gICAgc2VnbWVudHNbMF0gKz0gXCIvXCI7XG4gIH1cbiAgcmV0dXJuIHNlZ21lbnRzLmpvaW4oXCIvXCIpIHx8IChpc0Fic29sdXRlKHApID8gXCIvXCIgOiBcIi5cIik7XG59O1xuY29uc3QgZm9ybWF0ID0gZnVuY3Rpb24ocCkge1xuICBjb25zdCBleHQgPSBwLmV4dCA/IHAuZXh0LnN0YXJ0c1dpdGgoXCIuXCIpID8gcC5leHQgOiBgLiR7cC5leHR9YCA6IFwiXCI7XG4gIGNvbnN0IHNlZ21lbnRzID0gW3Aucm9vdCwgcC5kaXIsIHAuYmFzZSA/PyAocC5uYW1lID8/IFwiXCIpICsgZXh0XS5maWx0ZXIoXG4gICAgQm9vbGVhblxuICApO1xuICByZXR1cm4gbm9ybWFsaXplV2luZG93c1BhdGgoXG4gICAgcC5yb290ID8gcmVzb2x2ZSguLi5zZWdtZW50cykgOiBzZWdtZW50cy5qb2luKFwiL1wiKVxuICApO1xufTtcbmNvbnN0IGJhc2VuYW1lID0gZnVuY3Rpb24ocCwgZXh0ZW5zaW9uKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbm9ybWFsaXplV2luZG93c1BhdGgocCkuc3BsaXQoXCIvXCIpO1xuICBsZXQgbGFzdFNlZ21lbnQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gc2VnbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBjb25zdCB2YWwgPSBzZWdtZW50c1tpXTtcbiAgICBpZiAodmFsKSB7XG4gICAgICBsYXN0U2VnbWVudCA9IHZhbDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXh0ZW5zaW9uICYmIGxhc3RTZWdtZW50LmVuZHNXaXRoKGV4dGVuc2lvbikgPyBsYXN0U2VnbWVudC5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aCkgOiBsYXN0U2VnbWVudDtcbn07XG5jb25zdCBwYXJzZSA9IGZ1bmN0aW9uKHApIHtcbiAgY29uc3Qgcm9vdCA9IF9QQVRIX1JPT1RfUkUuZXhlYyhwKT8uWzBdPy5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKSB8fCBcIlwiO1xuICBjb25zdCBiYXNlID0gYmFzZW5hbWUocCk7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IGV4dG5hbWUoYmFzZSk7XG4gIHJldHVybiB7XG4gICAgcm9vdCxcbiAgICBkaXI6IGRpcm5hbWUocCksXG4gICAgYmFzZSxcbiAgICBleHQ6IGV4dGVuc2lvbixcbiAgICBuYW1lOiBiYXNlLnNsaWNlKDAsIGJhc2UubGVuZ3RoIC0gZXh0ZW5zaW9uLmxlbmd0aClcbiAgfTtcbn07XG5jb25zdCBtYXRjaGVzR2xvYiA9IChwYXRoLCBwYXR0ZXJuKSA9PiB7XG4gIHJldHVybiB6ZXB0b21hdGNoKHBhdHRlcm4sIG5vcm1hbGl6ZShwYXRoKSk7XG59O1xuXG5jb25zdCBfcGF0aCA9IHtcbiAgX19wcm90b19fOiBudWxsLFxuICBiYXNlbmFtZTogYmFzZW5hbWUsXG4gIGRpcm5hbWU6IGRpcm5hbWUsXG4gIGV4dG5hbWU6IGV4dG5hbWUsXG4gIGZvcm1hdDogZm9ybWF0LFxuICBpc0Fic29sdXRlOiBpc0Fic29sdXRlLFxuICBqb2luOiBqb2luLFxuICBtYXRjaGVzR2xvYjogbWF0Y2hlc0dsb2IsXG4gIG5vcm1hbGl6ZTogbm9ybWFsaXplLFxuICBub3JtYWxpemVTdHJpbmc6IG5vcm1hbGl6ZVN0cmluZyxcbiAgcGFyc2U6IHBhcnNlLFxuICByZWxhdGl2ZTogcmVsYXRpdmUsXG4gIHJlc29sdmU6IHJlc29sdmUsXG4gIHNlcDogc2VwLFxuICB0b05hbWVzcGFjZWRQYXRoOiB0b05hbWVzcGFjZWRQYXRoXG59O1xuXG5leHBvcnQgeyBfcGF0aCBhcyBfLCBub3JtYWxpemVTdHJpbmcgYXMgYSwgcmVsYXRpdmUgYXMgYiwgYmFzZW5hbWUgYXMgYywgZGlybmFtZSBhcyBkLCBleHRuYW1lIGFzIGUsIGZvcm1hdCBhcyBmLCBub3JtYWxpemVXaW5kb3dzUGF0aCBhcyBnLCBpc0Fic29sdXRlIGFzIGksIGpvaW4gYXMgaiwgbWF0Y2hlc0dsb2IgYXMgbSwgbm9ybWFsaXplIGFzIG4sIHBhcnNlIGFzIHAsIHJlc29sdmUgYXMgciwgc2VwIGFzIHMsIHRvTmFtZXNwYWNlZFBhdGggYXMgdCB9O1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLG1CQUFtQjtDQUFFLElBQUksaUJBQWE7RUFBQyxJQUFJLElBQUUsT0FBTyxnQkFBZSxJQUFFLE9BQU8sMEJBQXlCLElBQUUsT0FBTyxxQkFBb0IsSUFBRSxPQUFPLFVBQVUsZ0JBQWUsS0FBRyxHQUFFLE1BQUk7QUFBQyxRQUFJLElBQUksS0FBSyxFQUFFLEdBQUUsR0FBRSxHQUFFO0lBQUMsS0FBSSxFQUFFO0lBQUcsWUFBVztJQUFLLENBQUM7S0FBRyxLQUFHLEdBQUUsR0FBRSxHQUFFLE1BQUk7QUFBQyxPQUFHLEtBQUcsT0FBTyxLQUFHLFlBQVUsT0FBTyxLQUFHLFdBQVcsTUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFLEtBQUssR0FBRSxFQUFFLElBQUUsTUFBSSxLQUFHLEVBQUUsR0FBRSxHQUFFO0lBQUMsV0FBUSxFQUFFO0lBQUcsWUFBVyxFQUFFLElBQUUsRUFBRSxHQUFFLEVBQUUsS0FBRyxFQUFFO0lBQVcsQ0FBQztBQUFDLFVBQU87S0FBRyxLQUFFLE1BQUcsRUFBRSxFQUFFLEVBQUUsRUFBQyxjQUFhLEVBQUMsT0FBTSxNQUFLLENBQUMsRUFBQyxFQUFFLEVBQUMsSUFBRSxFQUFFO0FBQUMsSUFBRSxHQUFFLEVBQUMsZUFBWSxJQUFHLENBQUM7RUFBQyxJQUFJLEtBQUUsTUFBRyxNQUFNLFFBQVEsRUFBRSxFQUFDLEtBQUUsTUFBRyxPQUFPLEtBQUcsWUFBVyxLQUFFLE1BQUcsRUFBRSxXQUFTLEdBQUUsS0FBRSxNQUFHLE9BQU8sS0FBRyxVQUFTLEtBQUUsTUFBRyxPQUFPLEtBQUcsWUFBVSxNQUFJLE1BQUssS0FBRSxNQUFHLGFBQWEsUUFBTyxLQUFFLE1BQUcsT0FBTyxLQUFHLFVBQVMsS0FBRSxNQUFHLE1BQUksS0FBSyxHQUFFLEtBQUUsTUFBRztHQUFDLE1BQU0sb0JBQUUsSUFBSSxLQUFHO0FBQUMsV0FBTyxNQUFHO0lBQUMsTUFBTSxJQUFFLEVBQUUsSUFBSSxFQUFFO0FBQUMsUUFBRyxFQUFFLFFBQU87SUFBRSxNQUFNLElBQUUsRUFBRSxFQUFFO0FBQUMsV0FBTyxFQUFFLElBQUksR0FBRSxFQUFFLEVBQUM7O0tBQUksTUFBSSxHQUFFLEdBQUUsSUFBRSxFQUFFLEtBQUc7R0FBQyxNQUFNLElBQUU7SUFBQyxPQUFNLEVBQUU7SUFBQyxPQUFNO0lBQUUsT0FBTTtJQUFFLFVBQVM7SUFBRSxTQUFRO0lBQUUsUUFBTyxFQUFFO0lBQUM7QUFBQyxPQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRSxFQUFFLFVBQVEsRUFBRSxPQUFPLFFBQU8sRUFBRTtBQUFPLFNBQU0sSUFBSSxNQUFNLDRCQUE0QixFQUFFLFdBQVc7S0FBRSxLQUFHLEdBQUUsTUFBSSxFQUFFLEVBQUUsR0FBQyxHQUFHLEdBQUUsRUFBRSxHQUFDLEVBQUUsRUFBRSxHQUFDLEdBQUcsR0FBRSxFQUFFLEdBQUMsR0FBRyxHQUFFLEVBQUUsRUFBQyxNQUFJLEdBQUUsTUFBSTtHQUFDLE1BQU0sSUFBRSxFQUFFO0FBQUMsUUFBSSxNQUFNLEtBQUssR0FBRTtBQUFDLFFBQUcsRUFBRSxXQUFTLEVBQUUsT0FBTSxJQUFJLE1BQU0sdUJBQXVCLEVBQUUsR0FBRztJQUFDLE1BQU0sSUFBRSxFQUFFLFdBQVcsRUFBRTtBQUFDLE1BQUUsS0FBRzs7QUFBTSxXQUFPLE1BQUc7SUFBQyxNQUFNLElBQUUsRUFBRSxPQUFNLElBQUUsRUFBRTtBQUFNLFdBQUssRUFBRSxRQUFNLEVBQUUsVUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUcsR0FBRyxHQUFFLFNBQU87SUFBRSxNQUFNLElBQUUsRUFBRTtBQUFNLFFBQUcsSUFBRSxHQUFFO0FBQUMsU0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFFLENBQUMsRUFBRSxRQUFRLFFBQU87TUFBQyxNQUFNLElBQUUsRUFBRSxNQUFNLE1BQU0sR0FBRSxFQUFFLEVBQUMsSUFBRSxFQUFFLEVBQUUsR0FBQyxFQUFFLEdBQUUsR0FBRSxPQUFPLEVBQUUsQ0FBQyxHQUFDO0FBQUUsUUFBRSxFQUFFLElBQUUsRUFBRSxPQUFPLEtBQUssRUFBRTs7QUFBRSxPQUFFLFdBQVMsS0FBSyxJQUFJLEVBQUUsVUFBUyxFQUFFLE1BQU07O0FBQUUsV0FBUTs7S0FBTyxNQUFJLEdBQUUsTUFBSTtHQUFDLE1BQU0sSUFBRSxFQUFFLFFBQU8sSUFBRSxFQUFFLE1BQU0sUUFBUSxPQUFNLElBQUksRUFBQyxJQUFFLElBQUksT0FBTyxHQUFFLEVBQUU7QUFBQyxVQUFPLEdBQUUsTUFBRztBQUFDLE1BQUUsWUFBVSxFQUFFO0lBQU0sTUFBTSxJQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU07QUFBQyxRQUFHLEdBQUU7QUFBQyxTQUFHLENBQUMsRUFBRSxFQUFFLElBQUUsQ0FBQyxFQUFFLFFBQVEsUUFBTztNQUFDLE1BQU0sSUFBRSxFQUFFLEVBQUUsR0FBQyxFQUFFLEdBQUcsR0FBRSxFQUFFLE9BQU0sT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFDO0FBQUUsUUFBRSxFQUFFLElBQUUsRUFBRSxPQUFPLEtBQUssRUFBRTs7QUFBRSxZQUFPLEVBQUUsU0FBTyxFQUFFLEdBQUcsUUFBTyxFQUFFLFdBQVMsS0FBSyxJQUFJLEVBQUUsVUFBUyxFQUFFLE1BQU0sRUFBQztVQUFVLFFBQVE7S0FBTztLQUFFLE1BQUksR0FBRSxPQUFJLE1BQUc7QUFBQyxPQUFHLEVBQUUsTUFBTSxXQUFXLEdBQUUsRUFBRSxNQUFNLEVBQUM7QUFBQyxRQUFHLENBQUMsRUFBRSxFQUFFLElBQUUsQ0FBQyxFQUFFLFFBQVEsUUFBTztLQUFDLE1BQU0sSUFBRSxFQUFFLEVBQUUsR0FBQyxFQUFFLEdBQUUsRUFBRSxPQUFNLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBQztBQUFFLE9BQUUsRUFBRSxJQUFFLEVBQUUsT0FBTyxLQUFLLEVBQUU7O0FBQUUsV0FBTyxFQUFFLFNBQU8sRUFBRSxRQUFPLEVBQUUsV0FBUyxLQUFLLElBQUksRUFBRSxVQUFTLEVBQUUsTUFBTSxFQUFDO1NBQVUsUUFBUTtLQUFPLEtBQUcsR0FBRSxHQUFFLEdBQUUsTUFBSTtHQUFDLE1BQU0sSUFBRSxFQUFFLEVBQUU7QUFBQyxVQUFPLEVBQUUsRUFBRSxHQUFFLE1BQUc7SUFBQyxJQUFJLElBQUU7QUFBRSxXQUFLLElBQUUsSUFBRztLQUFDLE1BQU0sSUFBRSxFQUFFO0FBQU0sU0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFHLEtBQUcsR0FBRSxFQUFFLFVBQVEsR0FBRzs7QUFBTSxXQUFPLEtBQUc7S0FBRyxDQUFDLENBQUM7S0FBRSxNQUFJLEdBQUUsTUFBSSxFQUFFLEdBQUUsR0FBRSxFQUFFLEVBQUMsS0FBRyxHQUFFLE1BQUksRUFBRSxHQUFFLEdBQUUsU0FBSSxFQUFDLEtBQUcsR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLEVBQUUsSUFBSSxFQUFFO0FBQUMsVUFBTyxFQUFFLEVBQUUsR0FBRSxNQUFHO0FBQUMsU0FBSSxJQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxJQUFFLEdBQUUsSUFBSSxLQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRO0FBQU0sV0FBUTtLQUFNLENBQUMsQ0FBQztLQUFFLEtBQUcsR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLEVBQUUsSUFBSSxFQUFFO0FBQUMsVUFBTyxFQUFFLEdBQUUsTUFBRztBQUFDLFNBQUksSUFBSSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU8sSUFBRSxHQUFFLElBQUksS0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVE7QUFBSyxXQUFRO0tBQU8sQ0FBQztLQUFFLEtBQUcsR0FBRSxJQUFFLFVBQVE7R0FBQyxNQUFNLElBQUUsRUFBRSxFQUFFO0FBQUMsV0FBTyxNQUFHO0lBQUMsTUFBTSxJQUFFLEVBQUUsT0FBTSxJQUFFLEVBQUUsT0FBTyxRQUFPLElBQUUsRUFBRSxFQUFFO0FBQUMsWUFBUSxDQUFDLEtBQUcsT0FBSyxFQUFFLFFBQU0sR0FBRSxFQUFFLE9BQU8sV0FBUyxNQUFJLEVBQUUsT0FBTyxTQUFPLEtBQUk7O0tBQUksS0FBRyxHQUFFLE1BQUk7QUFBYyxVQUFMLEVBQUUsRUFBRTtLQUFXLFdBQU87R0FBQyxJQUFJLElBQUU7QUFBRSxXQUFPLE1BQUc7SUFBQyxNQUFNLElBQUUsRUFBRSxFQUFFLEVBQUMsSUFBRSxLQUFHO0FBQUUsWUFBTyxNQUFHO0tBQUMsSUFBSTtBQUFFLFNBQUcsRUFBRSxRQUFRLGdCQUFjLE1BQU0sUUFBTyxFQUFFLEVBQUU7S0FBQyxNQUFNLElBQUUsRUFBRSxPQUFNLEtBQUcsSUFBRSxFQUFFLE9BQU8sT0FBSyxFQUFFLHFCQUFHLElBQUksS0FBRyxHQUFFLElBQUUsRUFBRSxJQUFJLEVBQUU7QUFBQyxTQUFHLE1BQUksTUFBTSxRQUFRO0FBQU0sU0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFPLEVBQUUsUUFBTSxHQUFFO0FBQUssU0FBRyxFQUFFLFFBQU8sRUFBRSxRQUFNLEVBQUUsT0FBTSxFQUFFLFFBQVEsVUFBUSxFQUFFLE9BQU8sS0FBSyxHQUFHLEVBQUUsT0FBTyxFQUFDO0tBQUs7TUFBQyxNQUFNLElBQUUsRUFBRSxPQUFPO0FBQU8sVUFBRyxFQUFFLEVBQUUsRUFBQztPQUFDLE1BQU0sSUFBRSxFQUFFLE9BQU0sSUFBRSxFQUFFLE9BQU87QUFBTyxXQUFHLElBQUUsR0FBRTtRQUFDLE1BQU0sS0FBRyxFQUFFLE9BQU8sTUFBTSxHQUFFLEVBQUU7QUFBQyxVQUFFLElBQUksR0FBRTtTQUFDLE9BQU07U0FBRSxRQUFPO1NBQUcsQ0FBQzthQUFPLEdBQUUsSUFBSSxHQUFFLEVBQUU7QUFBQyxjQUFRO1lBQVUsUUFBTyxFQUFFLElBQUksR0FBRSxNQUFNLEVBQUM7Ozs7TUFBWSxFQUFDLEtBQUUsTUFBRztHQUFDLElBQUk7QUFBRSxXQUFPLE9BQUksTUFBSSxJQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUUsRUFBRSxFQUFFO0tBQUcsSUFBRSxHQUFFLE1BQUc7QUFBQyxPQUFHLEVBQUUsRUFBRSxDQUFDLFFBQU8sRUFBRSxFQUFFLEdBQUMsRUFBRSxFQUFFLEdBQUM7QUFBRSxPQUFHLEVBQUUsRUFBRSxJQUFFLEVBQUUsRUFBRSxDQUFDLFFBQU8sRUFBRSxFQUFFO0FBQUMsT0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFPLEVBQUUsRUFBRTtBQUFDLE9BQUcsRUFBRSxFQUFFLENBQUMsUUFBTyxFQUFFLE9BQU8sT0FBTyxFQUFFLENBQUM7QUFBQyxTQUFNLElBQUksTUFBTSxlQUFlO0lBQUUsRUFBQyxJQUFFLDhCQUE2QixNQUFHLE1BQUc7R0FBQyxJQUFJLElBQUU7QUFBRyxVQUFLLElBQUUsR0FBcUIsS0FBRSxHQUFWLElBQUUsS0FBRyxNQUFVLEdBQUUsSUFBRSxLQUFLLE9BQU8sSUFBRSxLQUFHLEdBQUc7QUFBRSxVQUFPO0tBQUcsS0FBRSxNQUFHO0dBQUMsSUFBSSxJQUFFO0FBQUUsUUFBSSxJQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxJQUFFLEdBQUUsSUFBSSxLQUFFLElBQUUsS0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUM7QUFBRSxVQUFPO0tBQUcsS0FBRyxHQUFFLE1BQUk7QUFBQyxPQUFHLElBQUUsRUFBRSxRQUFPLEVBQUUsR0FBRSxFQUFFO0dBQUMsTUFBTSxJQUFFLEVBQUU7QUFBQyxVQUFLLEtBQUcsR0FBRyxHQUFFLEtBQUssSUFBSTtBQUFDLFVBQU87S0FBRyxNQUFJLEdBQUUsR0FBRSxNQUFJLEVBQUUsR0FBRSxFQUFFLENBQUMsS0FBSSxNQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUMsRUFBQyxLQUFHLEdBQUUsTUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUMsS0FBRSxNQUFHLEdBQUUsS0FBRSxNQUFHLElBQUcsTUFBRyxHQUFHLEdBQUUsR0FBRSxFQUFDLGFBQVksT0FBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBQyxNQUFHLE1BQUc7R0FBQyxNQUFNLElBQUUsRUFBRTtBQUFDLFdBQU8sTUFBRyxF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
|
|
432
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aGUuTS1lVGh0TlouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3BhdGhlQDIuMC4zL25vZGVfbW9kdWxlcy9wYXRoZS9kaXN0L3NoYXJlZC9wYXRoZS5NLWVUaHROWi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IF9sYXp5TWF0Y2ggPSAoKSA9PiB7IHZhciBfX2xpYl9fPSgoKT0+e3ZhciBtPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsRz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxUPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscT0ocixlKT0+e2Zvcih2YXIgbiBpbiBlKW0ocixuLHtnZXQ6ZVtuXSxlbnVtZXJhYmxlOnRydWV9KTt9LEg9KHIsZSxuLGEpPT57aWYoZSYmdHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpZm9yKGxldCB0IG9mIEcoZSkpIVQuY2FsbChyLHQpJiZ0IT09biYmbShyLHQse2dldDooKT0+ZVt0XSxlbnVtZXJhYmxlOiEoYT1WKGUsdCkpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gcn0sSj1yPT5IKG0oe30sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KSxyKSx3PXt9O3Eodyx7ZGVmYXVsdDooKT0+cmV9KTt2YXIgQT1yPT5BcnJheS5pc0FycmF5KHIpLGQ9cj0+dHlwZW9mIHI9PVwiZnVuY3Rpb25cIixRPXI9PnIubGVuZ3RoPT09MCxXPXI9PnR5cGVvZiByPT1cIm51bWJlclwiLEs9cj0+dHlwZW9mIHI9PVwib2JqZWN0XCImJnIhPT1udWxsLFg9cj0+ciBpbnN0YW5jZW9mIFJlZ0V4cCxiPXI9PnR5cGVvZiByPT1cInN0cmluZ1wiLGg9cj0+cj09PXZvaWQgMCxZPXI9Pntjb25zdCBlPW5ldyBNYXA7cmV0dXJuIG49Pntjb25zdCBhPWUuZ2V0KG4pO2lmKGEpcmV0dXJuIGE7Y29uc3QgdD1yKG4pO3JldHVybiBlLnNldChuLHQpLHR9fSxycj0ocixlLG49e30pPT57Y29uc3QgYT17Y2FjaGU6e30saW5wdXQ6cixpbmRleDowLGluZGV4TWF4OjAsb3B0aW9uczpuLG91dHB1dDpbXX07aWYodihlKShhKSYmYS5pbmRleD09PXIubGVuZ3RoKXJldHVybiBhLm91dHB1dDt0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwYXJzZSBhdCBpbmRleCAke2EuaW5kZXhNYXh9YCl9LGk9KHIsZSk9PkEocik/ZXIocixlKTpiKHIpP2FyKHIsZSk6bnIocixlKSxlcj0ocixlKT0+e2NvbnN0IG49e307Zm9yKGNvbnN0IGEgb2Ygcil7aWYoYS5sZW5ndGghPT0xKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXI6IFwiJHthfVwiYCk7Y29uc3QgdD1hLmNoYXJDb2RlQXQoMCk7blt0XT10cnVlO31yZXR1cm4gYT0+e2NvbnN0IHQ9YS5pbmRleCxvPWEuaW5wdXQ7Zm9yKDthLmluZGV4PG8ubGVuZ3RoJiZvLmNoYXJDb2RlQXQoYS5pbmRleClpbiBuOylhLmluZGV4Kz0xO2NvbnN0IHU9YS5pbmRleDtpZih1PnQpe2lmKCFoKGUpJiYhYS5vcHRpb25zLnNpbGVudCl7Y29uc3Qgcz1hLmlucHV0LnNsaWNlKHQsdSksYz1kKGUpP2UocyxvLFN0cmluZyh0KSk6ZTtoKGMpfHxhLm91dHB1dC5wdXNoKGMpO31hLmluZGV4TWF4PU1hdGgubWF4KGEuaW5kZXhNYXgsYS5pbmRleCk7fXJldHVybiAgdHJ1ZX19LG5yPShyLGUpPT57Y29uc3Qgbj1yLnNvdXJjZSxhPXIuZmxhZ3MucmVwbGFjZSgveXwkLyxcInlcIiksdD1uZXcgUmVnRXhwKG4sYSk7cmV0dXJuIGcobz0+e3QubGFzdEluZGV4PW8uaW5kZXg7Y29uc3QgdT10LmV4ZWMoby5pbnB1dCk7aWYodSl7aWYoIWgoZSkmJiFvLm9wdGlvbnMuc2lsZW50KXtjb25zdCBzPWQoZSk/ZSguLi51LG8uaW5wdXQsU3RyaW5nKG8uaW5kZXgpKTplO2gocyl8fG8ub3V0cHV0LnB1c2gocyk7fXJldHVybiBvLmluZGV4Kz11WzBdLmxlbmd0aCxvLmluZGV4TWF4PU1hdGgubWF4KG8uaW5kZXhNYXgsby5pbmRleCksdHJ1ZX1lbHNlIHJldHVybiAgZmFsc2V9KX0sYXI9KHIsZSk9Pm49PntpZihuLmlucHV0LnN0YXJ0c1dpdGgocixuLmluZGV4KSl7aWYoIWgoZSkmJiFuLm9wdGlvbnMuc2lsZW50KXtjb25zdCB0PWQoZSk/ZShyLG4uaW5wdXQsU3RyaW5nKG4uaW5kZXgpKTplO2godCl8fG4ub3V0cHV0LnB1c2godCk7fXJldHVybiBuLmluZGV4Kz1yLmxlbmd0aCxuLmluZGV4TWF4PU1hdGgubWF4KG4uaW5kZXhNYXgsbi5pbmRleCksdHJ1ZX1lbHNlIHJldHVybiAgZmFsc2V9LEM9KHIsZSxuLGEpPT57Y29uc3QgdD12KHIpO3JldHVybiBnKF8oTShvPT57bGV0IHU9MDtmb3IoO3U8bjspe2NvbnN0IHM9by5pbmRleDtpZighdChvKXx8KHUrPTEsby5pbmRleD09PXMpKWJyZWFrfXJldHVybiB1Pj1lfSkpKX0sdHI9KHIsZSk9PkMociwwLDEpLGY9KHIsZSk9PkMociwwLDEvMCkseD0ocixlKT0+e2NvbnN0IG49ci5tYXAodik7cmV0dXJuIGcoXyhNKGE9Pntmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0KyspaWYoIW5bdF0oYSkpcmV0dXJuICBmYWxzZTtyZXR1cm4gIHRydWV9KSkpfSxsPShyLGUpPT57Y29uc3Qgbj1yLm1hcCh2KTtyZXR1cm4gZyhfKGE9Pntmb3IobGV0IHQ9MCxvPW4ubGVuZ3RoO3Q8bzt0KyspaWYoblt0XShhKSlyZXR1cm4gIHRydWU7cmV0dXJuICBmYWxzZX0pKX0sTT0ocixlPWZhbHNlKT0+e2NvbnN0IG49dihyKTtyZXR1cm4gYT0+e2NvbnN0IHQ9YS5pbmRleCxvPWEub3V0cHV0Lmxlbmd0aCx1PW4oYSk7cmV0dXJuICghdXx8ZSkmJihhLmluZGV4PXQsYS5vdXRwdXQubGVuZ3RoIT09byYmKGEub3V0cHV0Lmxlbmd0aD1vKSksdX19LF89KHIsZSk9Pntjb25zdCBuPXYocik7cmV0dXJuIG59LGc9KCgpPT57bGV0IHI9MDtyZXR1cm4gZT0+e2NvbnN0IG49dihlKSxhPXIrPTE7cmV0dXJuIHQ9Pnt2YXIgbztpZih0Lm9wdGlvbnMubWVtb2l6YXRpb249PT1mYWxzZSlyZXR1cm4gbih0KTtjb25zdCB1PXQuaW5kZXgscz0obz10LmNhY2hlKVthXXx8KG9bYV09bmV3IE1hcCksYz1zLmdldCh1KTtpZihjPT09ZmFsc2UpcmV0dXJuICBmYWxzZTtpZihXKGMpKXJldHVybiB0LmluZGV4PWMsdHJ1ZTtpZihjKXJldHVybiB0LmluZGV4PWMuaW5kZXgsYy5vdXRwdXQ/Lmxlbmd0aCYmdC5vdXRwdXQucHVzaCguLi5jLm91dHB1dCksdHJ1ZTt7Y29uc3QgWj10Lm91dHB1dC5sZW5ndGg7aWYobih0KSl7Y29uc3QgRD10LmluZGV4LFU9dC5vdXRwdXQubGVuZ3RoO2lmKFU+Wil7Y29uc3QgZWU9dC5vdXRwdXQuc2xpY2UoWixVKTtzLnNldCh1LHtpbmRleDpELG91dHB1dDplZX0pO31lbHNlIHMuc2V0KHUsRCk7cmV0dXJuICB0cnVlfWVsc2UgcmV0dXJuIHMuc2V0KHUsZmFsc2UpLGZhbHNlfX19fSkoKSxFPXI9PntsZXQgZTtyZXR1cm4gbj0+KGV8fChlPXYocigpKSksZShuKSl9LHY9WShyPT57aWYoZChyKSlyZXR1cm4gUShyKT9FKHIpOnI7aWYoYihyKXx8WChyKSlyZXR1cm4gaShyKTtpZihBKHIpKXJldHVybiB4KHIpO2lmKEsocikpcmV0dXJuIGwoT2JqZWN0LnZhbHVlcyhyKSk7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBydWxlXCIpfSksUD1cImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCIsaXI9cj0+e2xldCBlPVwiXCI7Zm9yKDtyPjA7KXtjb25zdCBuPShyLTEpJTI2O2U9UFtuXStlLHI9TWF0aC5mbG9vcigoci0xKS8yNik7fXJldHVybiBlfSxPPXI9PntsZXQgZT0wO2ZvcihsZXQgbj0wLGE9ci5sZW5ndGg7bjxhO24rKyllPWUqMjYrUC5pbmRleE9mKHJbbl0pKzE7cmV0dXJuIGV9LFM9KHIsZSk9PntpZihlPHIpcmV0dXJuIFMoZSxyKTtjb25zdCBuPVtdO2Zvcig7cjw9ZTspbi5wdXNoKHIrKyk7cmV0dXJuIG59LG9yPShyLGUsbik9PlMocixlKS5tYXAoYT0+U3RyaW5nKGEpLnBhZFN0YXJ0KG4sXCIwXCIpKSxSPShyLGUpPT5TKE8ociksTyhlKSkubWFwKGlyKSxwPXI9PnIsej1yPT51cihlPT5ycihlLHIse21lbW9pemF0aW9uOmZhbHNlfSkuam9pbihcIlwiKSksdXI9cj0+e2NvbnN0IGU9e307cmV0dXJuIG49PmVbbl0/PyhlW25dPXIobikpfSxzcj1pKC9eXFwqXFwqXFwvXFwqJC8sXCIuKlwiKSxjcj1pKC9eXFwqXFwqXFwvKFxcKik/KFsgYS16QS1aMC05Ll8tXSspJC8sKHIsZSxuKT0+YC4qJHtlP1wiXCI6XCIoPzpefC8pXCJ9JHtuLnJlcGxhY2VBbGwoXCIuXCIsXCJcXFxcLlwiKX1gKSxscj1pKC9eXFwqXFwqXFwvKFxcKik/KFsgYS16QS1aMC05Ll8tXSopXFx7KFsgYS16QS1aMC05Ll8tXSsoPzosWyBhLXpBLVowLTkuXy1dKykqKVxcfSQvLChyLGUsbixhKT0+YC4qJHtlP1wiXCI6XCIoPzpefC8pXCJ9JHtuLnJlcGxhY2VBbGwoXCIuXCIsXCJcXFxcLlwiKX0oPzoke2EucmVwbGFjZUFsbChcIixcIixcInxcIikucmVwbGFjZUFsbChcIi5cIixcIlxcXFwuXCIpfSlgKSx5PWkoL1xcXFwuLyxwKSxwcj1pKC9bJC4qKz9eKCl7fVtcXF1cXHxdLyxyPT5gXFxcXCR7cn1gKSx2cj1pKC8uLyxwKSxocj1pKC9eKD86ISEpKiEoLiopJC8sKHIsZSk9PmAoPyFeJHtMKGUpfSQpLio/YCksZHI9aSgvXighISkrLyxcIlwiKSxmcj1sKFtocixkcl0pLHhyPWkoL1xcLyhcXCpcXCpcXC8pKy8sXCIoPzovLisvfC8pXCIpLGdyPWkoL14oXFwqXFwqXFwvKSsvLFwiKD86XnwuKi8pXCIpLG1yPWkoL1xcLyhcXCpcXCopJC8sXCIoPzovLip8JClcIiksX3I9aSgvXFwqXFwqLyxcIi4qXCIpLGo9bChbeHIsZ3IsbXIsX3JdKSxTcj1pKC9cXCpcXC8oPyFcXCpcXCpcXC8pLyxcIlteL10qL1wiKSx5cj1pKC9cXCovLFwiW14vXSpcIiksTj1sKFtTcix5cl0pLGs9aShcIj9cIixcIlteL11cIiksJHI9aShcIltcIixwKSx3cj1pKFwiXVwiLHApLEFyPWkoL1shXl0vLFwiXi9cIiksYnI9aSgvW2Etel0tW2Etel18WzAtOV0tWzAtOV0vaSxwKSxDcj1pKC9bJC4qKz9eKCl7fVtcXHxdLyxyPT5gXFxcXCR7cn1gKSxNcj1pKC9bXlxcXV0vLHApLEVyPWwoW3ksQ3IsYnIsTXJdKSxCPXgoWyRyLHRyKEFyKSxmKEVyKSx3cl0pLFByPWkoXCJ7XCIsXCIoPzpcIiksT3I9aShcIn1cIixcIilcIiksUnI9aSgvKFxcZCspXFwuXFwuKFxcZCspLywocixlLG4pPT5vcigrZSwrbixNYXRoLm1pbihlLmxlbmd0aCxuLmxlbmd0aCkpLmpvaW4oXCJ8XCIpKSx6cj1pKC8oW2Etel0rKVxcLlxcLihbYS16XSspLywocixlLG4pPT5SKGUsbikuam9pbihcInxcIikpLGpyPWkoLyhbQS1aXSspXFwuXFwuKFtBLVpdKykvLChyLGUsbik9PlIoZS50b0xvd2VyQ2FzZSgpLG4udG9Mb3dlckNhc2UoKSkuam9pbihcInxcIikudG9VcHBlckNhc2UoKSksTnI9bChbUnIsenIsanJdKSxJPXgoW1ByLE5yLE9yXSksa3I9aShcIntcIixcIig/OlwiKSxCcj1pKFwifVwiLFwiKVwiKSxJcj1pKFwiLFwiLFwifFwiKSxGcj1pKC9bJC4qKz9eKCl7W1xcXVxcfF0vLHI9PmBcXFxcJHtyfWApLExyPWkoL1tefV0vLHApLFpyPUUoKCk9PkYpLERyPWwoW2osTixrLEIsSSxacix5LEZyLElyLExyXSksRj14KFtrcixmKERyKSxCcl0pLFVyPWYobChbc3IsY3IsbHIsZnIsaixOLGssQixJLEYseSxwcix2cl0pKSxWcj1VcixHcj16KFZyKSxMPUdyLFRyPWkoL1xcXFwuLyxwKSxxcj1pKC8uLyxwKSxIcj1pKC9cXCpcXCpcXCorLyxcIipcIiksSnI9aSgvKFteL3tbKCFdKVxcKlxcKi8sKHIsZSk9PmAke2V9KmApLFFyPWkoLyhefC4pXFwqXFwqKD89W14qLylcXF19XSkvLChyLGUpPT5gJHtlfSpgKSxXcj1mKGwoW1RyLEhyLEpyLFFyLHFyXSkpLEtyPVdyLFhyPXooS3IpLFlyPVhyLCQ9KHIsZSk9Pntjb25zdCBuPUFycmF5LmlzQXJyYXkocik/cjpbcl07aWYoIW4ubGVuZ3RoKXJldHVybiAgZmFsc2U7Y29uc3QgYT1uLm1hcCgkLmNvbXBpbGUpLHQ9bi5ldmVyeShzPT4vKFxcLyg/OlxcKlxcKik/fFxcW1xcL1xcXSkkLy50ZXN0KHMpKSxvPWUucmVwbGFjZSgvW1xcXFxcXC9dKy9nLFwiL1wiKS5yZXBsYWNlKC9cXC8kLyx0P1wiL1wiOlwiXCIpO3JldHVybiBhLnNvbWUocz0+cy50ZXN0KG8pKX07JC5jb21waWxlPXI9Pm5ldyBSZWdFeHAoYF4ke0woWXIocikpfSRgLFwic1wiKTt2YXIgcmU9JDtyZXR1cm4gSih3KX0pKCk7XG4gcmV0dXJuIF9fbGliX18uZGVmYXVsdCB8fCBfX2xpYl9fOyB9O1xubGV0IF9tYXRjaDtcbmNvbnN0IHplcHRvbWF0Y2ggPSAocGF0aCwgcGF0dGVybikgPT4ge1xuICBpZiAoIV9tYXRjaCkge1xuICAgIF9tYXRjaCA9IF9sYXp5TWF0Y2goKTtcbiAgICBfbGF6eU1hdGNoID0gbnVsbDtcbiAgfVxuICByZXR1cm4gX21hdGNoKHBhdGgsIHBhdHRlcm4pO1xufTtcblxuY29uc3QgX0RSSVZFX0xFVFRFUl9TVEFSVF9SRSA9IC9eW0EtWmEtel06XFwvLztcbmZ1bmN0aW9uIG5vcm1hbGl6ZVdpbmRvd3NQYXRoKGlucHV0ID0gXCJcIikge1xuICBpZiAoIWlucHV0KSB7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKS5yZXBsYWNlKF9EUklWRV9MRVRURVJfU1RBUlRfUkUsIChyKSA9PiByLnRvVXBwZXJDYXNlKCkpO1xufVxuXG5jb25zdCBfVU5DX1JFR0VYID0gL15bL1xcXFxdezJ9LztcbmNvbnN0IF9JU19BQlNPTFVURV9SRSA9IC9eWy9cXFxcXSg/IVsvXFxcXF0pfF5bL1xcXFxdezJ9KD8hXFwuKXxeW0EtWmEtel06Wy9cXFxcXS87XG5jb25zdCBfRFJJVkVfTEVUVEVSX1JFID0gL15bQS1aYS16XTokLztcbmNvbnN0IF9ST09UX0ZPTERFUl9SRSA9IC9eXFwvKFtBLVphLXpdOik/JC87XG5jb25zdCBfRVhUTkFNRV9SRSA9IC8uKFxcLlteLi9dK3xcXC4pJC87XG5jb25zdCBfUEFUSF9ST09UX1JFID0gL15bL1xcXFxdfF5bYS16QS1aXTpbL1xcXFxdLztcbmNvbnN0IHNlcCA9IFwiL1wiO1xuY29uc3Qgbm9ybWFsaXplID0gZnVuY3Rpb24ocGF0aCkge1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gXCIuXCI7XG4gIH1cbiAgcGF0aCA9IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKHBhdGgpO1xuICBjb25zdCBpc1VOQ1BhdGggPSBwYXRoLm1hdGNoKF9VTkNfUkVHRVgpO1xuICBjb25zdCBpc1BhdGhBYnNvbHV0ZSA9IGlzQWJzb2x1dGUocGF0aCk7XG4gIGNvbnN0IHRyYWlsaW5nU2VwYXJhdG9yID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgcGF0aCA9IG5vcm1hbGl6ZVN0cmluZyhwYXRoLCAhaXNQYXRoQWJzb2x1dGUpO1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICBpZiAoaXNQYXRoQWJzb2x1dGUpIHtcbiAgICAgIHJldHVybiBcIi9cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYWlsaW5nU2VwYXJhdG9yID8gXCIuL1wiIDogXCIuXCI7XG4gIH1cbiAgaWYgKHRyYWlsaW5nU2VwYXJhdG9yKSB7XG4gICAgcGF0aCArPSBcIi9cIjtcbiAgfVxuICBpZiAoX0RSSVZFX0xFVFRFUl9SRS50ZXN0KHBhdGgpKSB7XG4gICAgcGF0aCArPSBcIi9cIjtcbiAgfVxuICBpZiAoaXNVTkNQYXRoKSB7XG4gICAgaWYgKCFpc1BhdGhBYnNvbHV0ZSkge1xuICAgICAgcmV0dXJuIGAvLy4vJHtwYXRofWA7XG4gICAgfVxuICAgIHJldHVybiBgLy8ke3BhdGh9YDtcbiAgfVxuICByZXR1cm4gaXNQYXRoQWJzb2x1dGUgJiYgIWlzQWJzb2x1dGUocGF0aCkgPyBgLyR7cGF0aH1gIDogcGF0aDtcbn07XG5jb25zdCBqb2luID0gZnVuY3Rpb24oLi4uc2VnbWVudHMpIHtcbiAgbGV0IHBhdGggPSBcIlwiO1xuICBmb3IgKGNvbnN0IHNlZyBvZiBzZWdtZW50cykge1xuICAgIGlmICghc2VnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcGF0aFRyYWlsaW5nID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgICAgIGNvbnN0IHNlZ0xlYWRpbmcgPSBzZWdbMF0gPT09IFwiL1wiO1xuICAgICAgY29uc3QgYm90aCA9IHBhdGhUcmFpbGluZyAmJiBzZWdMZWFkaW5nO1xuICAgICAgaWYgKGJvdGgpIHtcbiAgICAgICAgcGF0aCArPSBzZWcuc2xpY2UoMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXRoICs9IHBhdGhUcmFpbGluZyB8fCBzZWdMZWFkaW5nID8gc2VnIDogYC8ke3NlZ31gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoICs9IHNlZztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoKTtcbn07XG5mdW5jdGlvbiBjd2QoKSB7XG4gIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgcHJvY2Vzcy5jd2QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBwcm9jZXNzLmN3ZCgpLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xuICB9XG4gIHJldHVybiBcIi9cIjtcbn1cbmNvbnN0IHJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmd1bWVudHNfKSB7XG4gIGFyZ3VtZW50c18gPSBhcmd1bWVudHNfLm1hcCgoYXJndW1lbnQpID0+IG5vcm1hbGl6ZVdpbmRvd3NQYXRoKGFyZ3VtZW50KSk7XG4gIGxldCByZXNvbHZlZFBhdGggPSBcIlwiO1xuICBsZXQgcmVzb2x2ZWRBYnNvbHV0ZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpbmRleCA9IGFyZ3VtZW50c18ubGVuZ3RoIC0gMTsgaW5kZXggPj0gLTEgJiYgIXJlc29sdmVkQWJzb2x1dGU7IGluZGV4LS0pIHtcbiAgICBjb25zdCBwYXRoID0gaW5kZXggPj0gMCA/IGFyZ3VtZW50c19baW5kZXhdIDogY3dkKCk7XG4gICAgaWYgKCFwYXRoIHx8IHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcmVzb2x2ZWRQYXRoID0gYCR7cGF0aH0vJHtyZXNvbHZlZFBhdGh9YDtcbiAgICByZXNvbHZlZEFic29sdXRlID0gaXNBYnNvbHV0ZShwYXRoKTtcbiAgfVxuICByZXNvbHZlZFBhdGggPSBub3JtYWxpemVTdHJpbmcocmVzb2x2ZWRQYXRoLCAhcmVzb2x2ZWRBYnNvbHV0ZSk7XG4gIGlmIChyZXNvbHZlZEFic29sdXRlICYmICFpc0Fic29sdXRlKHJlc29sdmVkUGF0aCkpIHtcbiAgICByZXR1cm4gYC8ke3Jlc29sdmVkUGF0aH1gO1xuICB9XG4gIHJldHVybiByZXNvbHZlZFBhdGgubGVuZ3RoID4gMCA/IHJlc29sdmVkUGF0aCA6IFwiLlwiO1xufTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZyhwYXRoLCBhbGxvd0Fib3ZlUm9vdCkge1xuICBsZXQgcmVzID0gXCJcIjtcbiAgbGV0IGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgbGV0IGxhc3RTbGFzaCA9IC0xO1xuICBsZXQgZG90cyA9IDA7XG4gIGxldCBjaGFyID0gbnVsbDtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8PSBwYXRoLmxlbmd0aDsgKytpbmRleCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjaGFyID0gcGF0aFtpbmRleF07XG4gICAgfSBlbHNlIGlmIChjaGFyID09PSBcIi9cIikge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoYXIgPSBcIi9cIjtcbiAgICB9XG4gICAgaWYgKGNoYXIgPT09IFwiL1wiKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpbmRleCAtIDEgfHwgZG90cyA9PT0gMSkgOyBlbHNlIGlmIChkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChyZXMubGVuZ3RoIDwgMiB8fCBsYXN0U2VnbWVudExlbmd0aCAhPT0gMiB8fCByZXNbcmVzLmxlbmd0aCAtIDFdICE9PSBcIi5cIiB8fCByZXNbcmVzLmxlbmd0aCAtIDJdICE9PSBcIi5cIikge1xuICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgY29uc3QgbGFzdFNsYXNoSW5kZXggPSByZXMubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICByZXMgPSBcIlwiO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMgPSByZXMuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpO1xuICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlcy5sZW5ndGggLSAxIC0gcmVzLmxhc3RJbmRleE9mKFwiL1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4O1xuICAgICAgICAgICAgZG90cyA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXMgPSBcIlwiO1xuICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwO1xuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXg7XG4gICAgICAgICAgICBkb3RzID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHtcbiAgICAgICAgICByZXMgKz0gcmVzLmxlbmd0aCA+IDAgPyBcIi8uLlwiIDogXCIuLlwiO1xuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzICs9IGAvJHtwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcyA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gaW5kZXggLSBsYXN0U2xhc2ggLSAxO1xuICAgICAgfVxuICAgICAgbGFzdFNsYXNoID0gaW5kZXg7XG4gICAgICBkb3RzID0gMDtcbiAgICB9IGVsc2UgaWYgKGNoYXIgPT09IFwiLlwiICYmIGRvdHMgIT09IC0xKSB7XG4gICAgICArK2RvdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvdHMgPSAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmNvbnN0IGlzQWJzb2x1dGUgPSBmdW5jdGlvbihwKSB7XG4gIHJldHVybiBfSVNfQUJTT0xVVEVfUkUudGVzdChwKTtcbn07XG5jb25zdCB0b05hbWVzcGFjZWRQYXRoID0gZnVuY3Rpb24ocCkge1xuICByZXR1cm4gbm9ybWFsaXplV2luZG93c1BhdGgocCk7XG59O1xuY29uc3QgZXh0bmFtZSA9IGZ1bmN0aW9uKHApIHtcbiAgaWYgKHAgPT09IFwiLi5cIikgcmV0dXJuIFwiXCI7XG4gIGNvbnN0IG1hdGNoID0gX0VYVE5BTUVfUkUuZXhlYyhub3JtYWxpemVXaW5kb3dzUGF0aChwKSk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaFsxXSB8fCBcIlwiO1xufTtcbmNvbnN0IHJlbGF0aXZlID0gZnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgY29uc3QgX2Zyb20gPSByZXNvbHZlKGZyb20pLnJlcGxhY2UoX1JPT1RfRk9MREVSX1JFLCBcIiQxXCIpLnNwbGl0KFwiL1wiKTtcbiAgY29uc3QgX3RvID0gcmVzb2x2ZSh0bykucmVwbGFjZShfUk9PVF9GT0xERVJfUkUsIFwiJDFcIikuc3BsaXQoXCIvXCIpO1xuICBpZiAoX3RvWzBdWzFdID09PSBcIjpcIiAmJiBfZnJvbVswXVsxXSA9PT0gXCI6XCIgJiYgX2Zyb21bMF0gIT09IF90b1swXSkge1xuICAgIHJldHVybiBfdG8uam9pbihcIi9cIik7XG4gIH1cbiAgY29uc3QgX2Zyb21Db3B5ID0gWy4uLl9mcm9tXTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIF9mcm9tQ29weSkge1xuICAgIGlmIChfdG9bMF0gIT09IHNlZ21lbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBfZnJvbS5zaGlmdCgpO1xuICAgIF90by5zaGlmdCgpO1xuICB9XG4gIHJldHVybiBbLi4uX2Zyb20ubWFwKCgpID0+IFwiLi5cIiksIC4uLl90b10uam9pbihcIi9cIik7XG59O1xuY29uc3QgZGlybmFtZSA9IGZ1bmN0aW9uKHApIHtcbiAgY29uc3Qgc2VnbWVudHMgPSBub3JtYWxpemVXaW5kb3dzUGF0aChwKS5yZXBsYWNlKC9cXC8kLywgXCJcIikuc3BsaXQoXCIvXCIpLnNsaWNlKDAsIC0xKTtcbiAgaWYgKHNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBfRFJJVkVfTEVUVEVSX1JFLnRlc3Qoc2VnbWVudHNbMF0pKSB7XG4gICAgc2VnbWVudHNbMF0gKz0gXCIvXCI7XG4gIH1cbiAgcmV0dXJuIHNlZ21lbnRzLmpvaW4oXCIvXCIpIHx8IChpc0Fic29sdXRlKHApID8gXCIvXCIgOiBcIi5cIik7XG59O1xuY29uc3QgZm9ybWF0ID0gZnVuY3Rpb24ocCkge1xuICBjb25zdCBleHQgPSBwLmV4dCA/IHAuZXh0LnN0YXJ0c1dpdGgoXCIuXCIpID8gcC5leHQgOiBgLiR7cC5leHR9YCA6IFwiXCI7XG4gIGNvbnN0IHNlZ21lbnRzID0gW3Aucm9vdCwgcC5kaXIsIHAuYmFzZSA/PyAocC5uYW1lID8/IFwiXCIpICsgZXh0XS5maWx0ZXIoXG4gICAgQm9vbGVhblxuICApO1xuICByZXR1cm4gbm9ybWFsaXplV2luZG93c1BhdGgoXG4gICAgcC5yb290ID8gcmVzb2x2ZSguLi5zZWdtZW50cykgOiBzZWdtZW50cy5qb2luKFwiL1wiKVxuICApO1xufTtcbmNvbnN0IGJhc2VuYW1lID0gZnVuY3Rpb24ocCwgZXh0ZW5zaW9uKSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gbm9ybWFsaXplV2luZG93c1BhdGgocCkuc3BsaXQoXCIvXCIpO1xuICBsZXQgbGFzdFNlZ21lbnQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gc2VnbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBjb25zdCB2YWwgPSBzZWdtZW50c1tpXTtcbiAgICBpZiAodmFsKSB7XG4gICAgICBsYXN0U2VnbWVudCA9IHZhbDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXh0ZW5zaW9uICYmIGxhc3RTZWdtZW50LmVuZHNXaXRoKGV4dGVuc2lvbikgPyBsYXN0U2VnbWVudC5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aCkgOiBsYXN0U2VnbWVudDtcbn07XG5jb25zdCBwYXJzZSA9IGZ1bmN0aW9uKHApIHtcbiAgY29uc3Qgcm9vdCA9IF9QQVRIX1JPT1RfUkUuZXhlYyhwKT8uWzBdPy5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKSB8fCBcIlwiO1xuICBjb25zdCBiYXNlID0gYmFzZW5hbWUocCk7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IGV4dG5hbWUoYmFzZSk7XG4gIHJldHVybiB7XG4gICAgcm9vdCxcbiAgICBkaXI6IGRpcm5hbWUocCksXG4gICAgYmFzZSxcbiAgICBleHQ6IGV4dGVuc2lvbixcbiAgICBuYW1lOiBiYXNlLnNsaWNlKDAsIGJhc2UubGVuZ3RoIC0gZXh0ZW5zaW9uLmxlbmd0aClcbiAgfTtcbn07XG5jb25zdCBtYXRjaGVzR2xvYiA9IChwYXRoLCBwYXR0ZXJuKSA9PiB7XG4gIHJldHVybiB6ZXB0b21hdGNoKHBhdHRlcm4sIG5vcm1hbGl6ZShwYXRoKSk7XG59O1xuXG5jb25zdCBfcGF0aCA9IHtcbiAgX19wcm90b19fOiBudWxsLFxuICBiYXNlbmFtZTogYmFzZW5hbWUsXG4gIGRpcm5hbWU6IGRpcm5hbWUsXG4gIGV4dG5hbWU6IGV4dG5hbWUsXG4gIGZvcm1hdDogZm9ybWF0LFxuICBpc0Fic29sdXRlOiBpc0Fic29sdXRlLFxuICBqb2luOiBqb2luLFxuICBtYXRjaGVzR2xvYjogbWF0Y2hlc0dsb2IsXG4gIG5vcm1hbGl6ZTogbm9ybWFsaXplLFxuICBub3JtYWxpemVTdHJpbmc6IG5vcm1hbGl6ZVN0cmluZyxcbiAgcGFyc2U6IHBhcnNlLFxuICByZWxhdGl2ZTogcmVsYXRpdmUsXG4gIHJlc29sdmU6IHJlc29sdmUsXG4gIHNlcDogc2VwLFxuICB0b05hbWVzcGFjZWRQYXRoOiB0b05hbWVzcGFjZWRQYXRoXG59O1xuXG5leHBvcnQgeyBfcGF0aCBhcyBfLCBub3JtYWxpemVTdHJpbmcgYXMgYSwgcmVsYXRpdmUgYXMgYiwgYmFzZW5hbWUgYXMgYywgZGlybmFtZSBhcyBkLCBleHRuYW1lIGFzIGUsIGZvcm1hdCBhcyBmLCBub3JtYWxpemVXaW5kb3dzUGF0aCBhcyBnLCBpc0Fic29sdXRlIGFzIGksIGpvaW4gYXMgaiwgbWF0Y2hlc0dsb2IgYXMgbSwgbm9ybWFsaXplIGFzIG4sIHBhcnNlIGFzIHAsIHJlc29sdmUgYXMgciwgc2VwIGFzIHMsIHRvTmFtZXNwYWNlZFBhdGggYXMgdCB9O1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLG1CQUFtQjtDQUFFLElBQUksaUJBQWE7RUFBQyxJQUFJLElBQUUsT0FBTyxnQkFBZSxJQUFFLE9BQU8sMEJBQXlCLElBQUUsT0FBTyxxQkFBb0IsSUFBRSxPQUFPLFVBQVUsZ0JBQWUsS0FBRyxHQUFFLE1BQUk7R0FBQyxLQUFJLElBQUksS0FBSyxHQUFFLEVBQUUsR0FBRSxHQUFFO0lBQUMsS0FBSSxFQUFFO0lBQUcsWUFBVztHQUFJLENBQUM7RUFBRSxHQUFFLEtBQUcsR0FBRSxHQUFFLEdBQUUsTUFBSTtHQUFDLElBQUcsS0FBRyxPQUFPLEtBQUcsWUFBVSxPQUFPLEtBQUcsWUFBVyxLQUFJLElBQUksS0FBSyxFQUFFLENBQUMsR0FBRSxDQUFDLEVBQUUsS0FBSyxHQUFFLENBQUMsS0FBRyxNQUFJLEtBQUcsRUFBRSxHQUFFLEdBQUU7SUFBQyxXQUFRLEVBQUU7SUFBRyxZQUFXLEVBQUUsSUFBRSxFQUFFLEdBQUUsQ0FBQyxNQUFJLEVBQUU7R0FBVSxDQUFDO0dBQUUsT0FBTztFQUFDLEdBQUUsS0FBRSxNQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUUsY0FBYSxFQUFDLE9BQU0sS0FBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUUsQ0FBQztFQUFFLEVBQUUsR0FBRSxFQUFDLGVBQVksR0FBRSxDQUFDO0VBQUUsSUFBSSxLQUFFLE1BQUcsTUFBTSxRQUFRLENBQUMsR0FBRSxLQUFFLE1BQUcsT0FBTyxLQUFHLFlBQVcsS0FBRSxNQUFHLEVBQUUsV0FBUyxHQUFFLEtBQUUsTUFBRyxPQUFPLEtBQUcsVUFBUyxLQUFFLE1BQUcsT0FBTyxLQUFHLFlBQVUsTUFBSSxNQUFLLEtBQUUsTUFBRyxhQUFhLFFBQU8sS0FBRSxNQUFHLE9BQU8sS0FBRyxVQUFTLEtBQUUsTUFBRyxNQUFJLEtBQUssR0FBRSxLQUFFLE1BQUc7R0FBQyxNQUFNLG9CQUFFLElBQUksSUFBRTtHQUFFLFFBQU8sTUFBRztJQUFDLE1BQU0sSUFBRSxFQUFFLElBQUksQ0FBQztJQUFFLElBQUcsR0FBRSxPQUFPO0lBQUUsTUFBTSxJQUFFLEVBQUUsQ0FBQztJQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUUsQ0FBQyxHQUFFO0dBQUM7RUFBQyxHQUFFLE1BQUksR0FBRSxHQUFFLElBQUUsQ0FBQyxNQUFJO0dBQUMsTUFBTSxJQUFFO0lBQUMsT0FBTSxDQUFDO0lBQUUsT0FBTTtJQUFFLE9BQU07SUFBRSxVQUFTO0lBQUUsU0FBUTtJQUFFLFFBQU8sQ0FBQztHQUFDO0dBQUUsSUFBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLFVBQVEsRUFBRSxRQUFPLE9BQU8sRUFBRTtHQUFPLE1BQU0sSUFBSSxNQUFNLDRCQUE0QixFQUFFLFVBQVU7RUFBQyxHQUFFLEtBQUcsR0FBRSxNQUFJLEVBQUUsQ0FBQyxJQUFFLEdBQUcsR0FBRSxDQUFDLElBQUUsRUFBRSxDQUFDLElBQUUsR0FBRyxHQUFFLENBQUMsSUFBRSxHQUFHLEdBQUUsQ0FBQyxHQUFFLE1BQUksR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLENBQUM7R0FBRSxLQUFJLE1BQU0sS0FBSyxHQUFFO0lBQUMsSUFBRyxFQUFFLFdBQVMsR0FBRSxNQUFNLElBQUksTUFBTSx1QkFBdUIsRUFBRSxFQUFFO0lBQUUsTUFBTSxJQUFFLEVBQUUsV0FBVyxDQUFDO0lBQUUsRUFBRSxLQUFHO0dBQUs7R0FBQyxRQUFPLE1BQUc7SUFBQyxNQUFNLElBQUUsRUFBRSxPQUFNLElBQUUsRUFBRTtJQUFNLE9BQUssRUFBRSxRQUFNLEVBQUUsVUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEtBQUksSUFBRyxFQUFFLFNBQU87SUFBRSxNQUFNLElBQUUsRUFBRTtJQUFNLElBQUcsSUFBRSxHQUFFO0tBQUMsSUFBRyxDQUFDLEVBQUUsQ0FBQyxLQUFHLENBQUMsRUFBRSxRQUFRLFFBQU87TUFBQyxNQUFNLElBQUUsRUFBRSxNQUFNLE1BQU0sR0FBRSxDQUFDLEdBQUUsSUFBRSxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUUsR0FBRSxPQUFPLENBQUMsQ0FBQyxJQUFFO01BQUUsRUFBRSxDQUFDLEtBQUcsRUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0tBQUMsRUFBRSxXQUFTLEtBQUssSUFBSSxFQUFFLFVBQVMsRUFBRSxLQUFLO0lBQUU7SUFBQyxPQUFRO0dBQUk7RUFBQyxHQUFFLE1BQUksR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLEVBQUUsUUFBTyxJQUFFLEVBQUUsTUFBTSxRQUFRLE9BQU0sR0FBRyxHQUFFLElBQUUsSUFBSSxPQUFPLEdBQUUsQ0FBQztHQUFFLE9BQU8sR0FBRSxNQUFHO0lBQUMsRUFBRSxZQUFVLEVBQUU7SUFBTSxNQUFNLElBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSztJQUFFLElBQUcsR0FBRTtLQUFDLElBQUcsQ0FBQyxFQUFFLENBQUMsS0FBRyxDQUFDLEVBQUUsUUFBUSxRQUFPO01BQUMsTUFBTSxJQUFFLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBRyxHQUFFLEVBQUUsT0FBTSxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUU7TUFBRSxFQUFFLENBQUMsS0FBRyxFQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7S0FBQyxPQUFPLEVBQUUsU0FBTyxFQUFFLEVBQUUsQ0FBQyxRQUFPLEVBQUUsV0FBUyxLQUFLLElBQUksRUFBRSxVQUFTLEVBQUUsS0FBSyxHQUFFO0lBQUksT0FBTSxPQUFRO0dBQUssQ0FBQztFQUFDLEdBQUUsTUFBSSxHQUFFLE9BQUksTUFBRztHQUFDLElBQUcsRUFBRSxNQUFNLFdBQVcsR0FBRSxFQUFFLEtBQUssR0FBRTtJQUFDLElBQUcsQ0FBQyxFQUFFLENBQUMsS0FBRyxDQUFDLEVBQUUsUUFBUSxRQUFPO0tBQUMsTUFBTSxJQUFFLEVBQUUsQ0FBQyxJQUFFLEVBQUUsR0FBRSxFQUFFLE9BQU0sT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFFO0tBQUUsRUFBRSxDQUFDLEtBQUcsRUFBRSxPQUFPLEtBQUssQ0FBQztJQUFFO0lBQUMsT0FBTyxFQUFFLFNBQU8sRUFBRSxRQUFPLEVBQUUsV0FBUyxLQUFLLElBQUksRUFBRSxVQUFTLEVBQUUsS0FBSyxHQUFFO0dBQUksT0FBTSxPQUFRO0VBQUssR0FBRSxLQUFHLEdBQUUsR0FBRSxHQUFFLE1BQUk7R0FBQyxNQUFNLElBQUUsRUFBRSxDQUFDO0dBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxNQUFHO0lBQUMsSUFBSSxJQUFFO0lBQUUsT0FBSyxJQUFFLElBQUc7S0FBQyxNQUFNLElBQUUsRUFBRTtLQUFNLElBQUcsQ0FBQyxFQUFFLENBQUMsTUFBSSxLQUFHLEdBQUUsRUFBRSxVQUFRLElBQUc7SUFBSztJQUFDLE9BQU8sS0FBRztHQUFDLENBQUMsQ0FBQyxDQUFDO0VBQUMsR0FBRSxNQUFJLEdBQUUsTUFBSSxFQUFFLEdBQUUsR0FBRSxDQUFDLEdBQUUsS0FBRyxHQUFFLE1BQUksRUFBRSxHQUFFLEdBQUUsUUFBRyxHQUFFLEtBQUcsR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLEVBQUUsSUFBSSxDQUFDO0dBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRSxNQUFHO0lBQUMsS0FBSSxJQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxJQUFFLEdBQUUsS0FBSSxJQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFFLE9BQVE7SUFBTSxPQUFRO0dBQUksQ0FBQyxDQUFDLENBQUM7RUFBQyxHQUFFLEtBQUcsR0FBRSxNQUFJO0dBQUMsTUFBTSxJQUFFLEVBQUUsSUFBSSxDQUFDO0dBQUUsT0FBTyxFQUFFLEdBQUUsTUFBRztJQUFDLEtBQUksSUFBSSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU8sSUFBRSxHQUFFLEtBQUksSUFBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUUsT0FBUTtJQUFLLE9BQVE7R0FBSyxDQUFDLENBQUM7RUFBQyxHQUFFLEtBQUcsR0FBRSxJQUFFLFVBQVE7R0FBQyxNQUFNLElBQUUsRUFBRSxDQUFDO0dBQUUsUUFBTyxNQUFHO0lBQUMsTUFBTSxJQUFFLEVBQUUsT0FBTSxJQUFFLEVBQUUsT0FBTyxRQUFPLElBQUUsRUFBRSxDQUFDO0lBQUUsUUFBUSxDQUFDLEtBQUcsT0FBSyxFQUFFLFFBQU0sR0FBRSxFQUFFLE9BQU8sV0FBUyxNQUFJLEVBQUUsT0FBTyxTQUFPLEtBQUk7R0FBQztFQUFDLEdBQUUsS0FBRyxHQUFFLE1BQUk7R0FBYyxPQUFMLEVBQUUsQ0FBVTtFQUFDLEdBQUUsV0FBTztHQUFDLElBQUksSUFBRTtHQUFFLFFBQU8sTUFBRztJQUFDLE1BQU0sSUFBRSxFQUFFLENBQUMsR0FBRSxJQUFFLEtBQUc7SUFBRSxRQUFPLE1BQUc7S0FBQyxJQUFJO0tBQUUsSUFBRyxFQUFFLFFBQVEsZ0JBQWMsT0FBTSxPQUFPLEVBQUUsQ0FBQztLQUFFLE1BQU0sSUFBRSxFQUFFLE9BQU0sS0FBRyxJQUFFLEVBQUUsTUFBQSxDQUFPLE9BQUssRUFBRSxxQkFBRyxJQUFJLElBQUUsSUFBRyxJQUFFLEVBQUUsSUFBSSxDQUFDO0tBQUUsSUFBRyxNQUFJLE9BQU0sT0FBUTtLQUFNLElBQUcsRUFBRSxDQUFDLEdBQUUsT0FBTyxFQUFFLFFBQU0sR0FBRTtLQUFLLElBQUcsR0FBRSxPQUFPLEVBQUUsUUFBTSxFQUFFLE9BQU0sRUFBRSxRQUFRLFVBQVEsRUFBRSxPQUFPLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBRTtLQUFLO01BQUMsTUFBTSxJQUFFLEVBQUUsT0FBTztNQUFPLElBQUcsRUFBRSxDQUFDLEdBQUU7T0FBQyxNQUFNLElBQUUsRUFBRSxPQUFNLElBQUUsRUFBRSxPQUFPO09BQU8sSUFBRyxJQUFFLEdBQUU7UUFBQyxNQUFNLEtBQUcsRUFBRSxPQUFPLE1BQU0sR0FBRSxDQUFDO1FBQUUsRUFBRSxJQUFJLEdBQUU7U0FBQyxPQUFNO1NBQUUsUUFBTztRQUFFLENBQUM7T0FBRSxPQUFNLEVBQUUsSUFBSSxHQUFFLENBQUM7T0FBRSxPQUFRO01BQUksT0FBTSxPQUFPLEVBQUUsSUFBSSxHQUFFLEtBQUssR0FBRTtLQUFLO0lBQUM7R0FBQztFQUFDLEVBQUEsQ0FBRyxHQUFFLEtBQUUsTUFBRztHQUFDLElBQUk7R0FBRSxRQUFPLE9BQUksTUFBSSxJQUFFLEVBQUUsRUFBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0VBQUUsR0FBRSxJQUFFLEdBQUUsTUFBRztHQUFDLElBQUcsRUFBRSxDQUFDLEdBQUUsT0FBTyxFQUFFLENBQUMsSUFBRSxFQUFFLENBQUMsSUFBRTtHQUFFLElBQUcsRUFBRSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUUsT0FBTyxFQUFFLENBQUM7R0FBRSxJQUFHLEVBQUUsQ0FBQyxHQUFFLE9BQU8sRUFBRSxDQUFDO0dBQUUsSUFBRyxFQUFFLENBQUMsR0FBRSxPQUFPLEVBQUUsT0FBTyxPQUFPLENBQUMsQ0FBQztHQUFFLE1BQU0sSUFBSSxNQUFNLGNBQWM7RUFBQyxDQUFDLEdBQUUsSUFBRSw4QkFBNkIsTUFBRyxNQUFHO0dBQUMsSUFBSSxJQUFFO0dBQUcsT0FBSyxJQUFFLElBQXFCLElBQUUsR0FBVixJQUFFLEtBQUcsTUFBVSxHQUFFLElBQUUsS0FBSyxPQUFPLElBQUUsS0FBRyxFQUFFO0dBQUcsT0FBTztFQUFDLEdBQUUsS0FBRSxNQUFHO0dBQUMsSUFBSSxJQUFFO0dBQUUsS0FBSSxJQUFJLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxJQUFFLEdBQUUsS0FBSSxJQUFFLElBQUUsS0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUU7R0FBRSxPQUFPO0VBQUMsR0FBRSxLQUFHLEdBQUUsTUFBSTtHQUFDLElBQUcsSUFBRSxHQUFFLE9BQU8sRUFBRSxHQUFFLENBQUM7R0FBRSxNQUFNLElBQUUsQ0FBQztHQUFFLE9BQUssS0FBRyxJQUFHLEVBQUUsS0FBSyxHQUFHO0dBQUUsT0FBTztFQUFDLEdBQUUsTUFBSSxHQUFFLEdBQUUsTUFBSSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxNQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFFLEdBQUcsQ0FB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
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "../../../../../../_virtual/_rolldown/runtime.js";
|
|
2
1
|
//#region ../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js
|
|
3
2
|
var $ = Object.defineProperty;
|
|
4
3
|
var C = (s) => {
|
|
@@ -10,8 +9,11 @@ var D = (s, n, t) => n in s ? $(s, n, {
|
|
|
10
9
|
writable: !0,
|
|
11
10
|
value: t
|
|
12
11
|
}) : s[n] = t;
|
|
13
|
-
var O = (s, n, t) => D(s, typeof n != "symbol" ? n + "" : n, t)
|
|
14
|
-
var
|
|
12
|
+
var O = (s, n, t) => D(s, typeof n != "symbol" ? n + "" : n, t);
|
|
13
|
+
var q = (s, n, t) => n.has(s) || C("Cannot " + t);
|
|
14
|
+
var d = (s, n, t) => (q(s, n, "read from private field"), t ? t.call(s) : n.get(s));
|
|
15
|
+
var k = (s, n, t) => n.has(s) ? C("Cannot add the same private member more than once") : n instanceof WeakSet ? n.add(s) : n.set(s, t);
|
|
16
|
+
var f = (s, n, t, e) => (q(s, n, "write to private field"), e ? e.call(s, t) : n.set(s, t), t);
|
|
15
17
|
var F = (s, n, t, e) => ({
|
|
16
18
|
set _(r) {
|
|
17
19
|
f(s, n, r, t);
|
|
@@ -26,7 +28,11 @@ var M = class {
|
|
|
26
28
|
O(this, "next");
|
|
27
29
|
this.value = n;
|
|
28
30
|
}
|
|
29
|
-
}
|
|
31
|
+
};
|
|
32
|
+
var m;
|
|
33
|
+
var w;
|
|
34
|
+
var E;
|
|
35
|
+
var g = class {
|
|
30
36
|
constructor() {
|
|
31
37
|
k(this, m);
|
|
32
38
|
k(this, w);
|
|
@@ -210,11 +216,16 @@ var N = {
|
|
|
210
216
|
120: 1.98,
|
|
211
217
|
infinity: 1.96
|
|
212
218
|
};
|
|
213
|
-
var J = (s) => s / 1e6
|
|
219
|
+
var J = (s) => s / 1e6;
|
|
220
|
+
var U = () => J(Number(process.hrtime.bigint()));
|
|
221
|
+
var B = () => performance.now();
|
|
214
222
|
function W(s) {
|
|
215
223
|
return s !== null && typeof s == "object" && typeof s.then == "function";
|
|
216
224
|
}
|
|
217
|
-
var S = (s, n) => s.reduce((e, r) => e + (r - n) ** 2, 0) / (s.length - 1) || 0
|
|
225
|
+
var S = (s, n) => s.reduce((e, r) => e + (r - n) ** 2, 0) / (s.length - 1) || 0;
|
|
226
|
+
var X = (async () => {}).constructor;
|
|
227
|
+
var Z = (s) => s.constructor === X;
|
|
228
|
+
var z = async (s) => {
|
|
218
229
|
if (Z(s.fn)) return !0;
|
|
219
230
|
try {
|
|
220
231
|
if (s.opts.beforeEach != null) try {
|
|
@@ -503,4 +514,4 @@ var x = class extends EventTarget {
|
|
|
503
514
|
//#endregion
|
|
504
515
|
export { x as Bench, b as Task, U as hrtimeNow, B as now };
|
|
505
516
|
|
|
506
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3RpbnliZW5jaEAyLjkuMC9ub2RlX21vZHVsZXMvdGlueWJlbmNoL2Rpc3QvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyICQgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgQyA9IChzKSA9PiB7XG4gIHRocm93IFR5cGVFcnJvcihzKTtcbn07XG52YXIgRCA9IChzLCBuLCB0KSA9PiBuIGluIHMgPyAkKHMsIG4sIHsgZW51bWVyYWJsZTogITAsIGNvbmZpZ3VyYWJsZTogITAsIHdyaXRhYmxlOiAhMCwgdmFsdWU6IHQgfSkgOiBzW25dID0gdDtcbnZhciBPID0gKHMsIG4sIHQpID0+IEQocywgdHlwZW9mIG4gIT0gXCJzeW1ib2xcIiA/IG4gKyBcIlwiIDogbiwgdCksIHEgPSAocywgbiwgdCkgPT4gbi5oYXMocykgfHwgQyhcIkNhbm5vdCBcIiArIHQpO1xudmFyIGQgPSAocywgbiwgdCkgPT4gKHEocywgbiwgXCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZFwiKSwgdCA/IHQuY2FsbChzKSA6IG4uZ2V0KHMpKSwgayA9IChzLCBuLCB0KSA9PiBuLmhhcyhzKSA/IEMoXCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlXCIpIDogbiBpbnN0YW5jZW9mIFdlYWtTZXQgPyBuLmFkZChzKSA6IG4uc2V0KHMsIHQpLCBmID0gKHMsIG4sIHQsIGUpID0+IChxKHMsIG4sIFwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZFwiKSwgZSA/IGUuY2FsbChzLCB0KSA6IG4uc2V0KHMsIHQpLCB0KTtcbnZhciBGID0gKHMsIG4sIHQsIGUpID0+ICh7XG4gIHNldCBfKHIpIHtcbiAgICBmKHMsIG4sIHIsIHQpO1xuICB9LFxuICBnZXQgXygpIHtcbiAgICByZXR1cm4gZChzLCBuLCBlKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy8ucG5wbS95b2N0by1xdWV1ZUAxLjAuMC9ub2RlX21vZHVsZXMveW9jdG8tcXVldWUvaW5kZXguanNcbnZhciBNID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihuKSB7XG4gICAgTyh0aGlzLCBcInZhbHVlXCIpO1xuICAgIE8odGhpcywgXCJuZXh0XCIpO1xuICAgIHRoaXMudmFsdWUgPSBuO1xuICB9XG59LCBtLCB3LCBFLCBnID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBrKHRoaXMsIG0pO1xuICAgIGsodGhpcywgdyk7XG4gICAgayh0aGlzLCBFKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cbiAgZW5xdWV1ZShuKSB7XG4gICAgbGV0IHQgPSBuZXcgTShuKTtcbiAgICBkKHRoaXMsIG0pID8gKGQodGhpcywgdykubmV4dCA9IHQsIGYodGhpcywgdywgdCkpIDogKGYodGhpcywgbSwgdCksIGYodGhpcywgdywgdCkpLCBGKHRoaXMsIEUpLl8rKztcbiAgfVxuICBkZXF1ZXVlKCkge1xuICAgIGxldCBuID0gZCh0aGlzLCBtKTtcbiAgICBpZiAobilcbiAgICAgIHJldHVybiBmKHRoaXMsIG0sIGQodGhpcywgbSkubmV4dCksIEYodGhpcywgRSkuXy0tLCBuLnZhbHVlO1xuICB9XG4gIGNsZWFyKCkge1xuICAgIGYodGhpcywgbSwgdm9pZCAwKSwgZih0aGlzLCB3LCB2b2lkIDApLCBmKHRoaXMsIEUsIDApO1xuICB9XG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiBkKHRoaXMsIEUpO1xuICB9XG4gICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICBsZXQgbiA9IGQodGhpcywgbSk7XG4gICAgZm9yICg7IG47IClcbiAgICAgIHlpZWxkIG4udmFsdWUsIG4gPSBuLm5leHQ7XG4gIH1cbn07XG5tID0gbmV3IFdlYWtNYXAoKSwgdyA9IG5ldyBXZWFrTWFwKCksIEUgPSBuZXcgV2Vha01hcCgpO1xuXG4vLyBub2RlX21vZHVsZXMvLnBucG0vcC1saW1pdEA0LjAuMC9ub2RlX21vZHVsZXMvcC1saW1pdC9pbmRleC5qc1xuZnVuY3Rpb24geShzKSB7XG4gIGlmICghKChOdW1iZXIuaXNJbnRlZ2VyKHMpIHx8IHMgPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgJiYgcyA+IDApKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBgY29uY3VycmVuY3lgIHRvIGJlIGEgbnVtYmVyIGZyb20gMSBhbmQgdXBcIik7XG4gIGxldCBuID0gbmV3IGcoKSwgdCA9IDAsIGUgPSAoKSA9PiB7XG4gICAgdC0tLCBuLnNpemUgPiAwICYmIG4uZGVxdWV1ZSgpKCk7XG4gIH0sIHIgPSBhc3luYyAoaCwgcCwgYSkgPT4ge1xuICAgIHQrKztcbiAgICBsZXQgbCA9IChhc3luYyAoKSA9PiBoKC4uLmEpKSgpO1xuICAgIHAobCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGw7XG4gICAgfSBjYXRjaCAoVCkge1xuICAgIH1cbiAgICBlKCk7XG4gIH0sIGkgPSAoaCwgcCwgYSkgPT4ge1xuICAgIG4uZW5xdWV1ZShyLmJpbmQodm9pZCAwLCBoLCBwLCBhKSksIChhc3luYyAoKSA9PiAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksIHQgPCBzICYmIG4uc2l6ZSA+IDAgJiYgbi5kZXF1ZXVlKCkoKSkpKCk7XG4gIH0sIGMgPSAoaCwgLi4ucCkgPT4gbmV3IFByb21pc2UoKGEpID0+IHtcbiAgICBpKGgsIGEsIHApO1xuICB9KTtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGMsIHtcbiAgICBhY3RpdmVDb3VudDoge1xuICAgICAgZ2V0OiAoKSA9PiB0XG4gICAgfSxcbiAgICBwZW5kaW5nQ291bnQ6IHtcbiAgICAgIGdldDogKCkgPT4gbi5zaXplXG4gICAgfSxcbiAgICBjbGVhclF1ZXVlOiB7XG4gICAgICB2YWx1ZTogKCkgPT4ge1xuICAgICAgICBuLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICB9KSwgYztcbn1cblxuLy8gc3JjL2V2ZW50LnRzXG5mdW5jdGlvbiBvKHMsIG4gPSBudWxsKSB7XG4gIGxldCB0ID0gbmV3IEV2ZW50KHMpO1xuICByZXR1cm4gbiAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJ0YXNrXCIsIHtcbiAgICB2YWx1ZTogbixcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITEsXG4gICAgY29uZmlndXJhYmxlOiAhMVxuICB9KSwgdDtcbn1cblxuLy8gc3JjL2NvbnN0YW50cy50c1xudmFyIEcgPSB7XG4gIDE6IDEyLjcxLFxuICAyOiA0LjMwMyxcbiAgMzogMy4xODIsXG4gIDQ6IDIuNzc2LFxuICA1OiAyLjU3MSxcbiAgNjogMi40NDcsXG4gIDc6IDIuMzY1LFxuICA4OiAyLjMwNixcbiAgOTogMi4yNjIsXG4gIDEwOiAyLjIyOCxcbiAgMTE6IDIuMjAxLFxuICAxMjogMi4xNzksXG4gIDEzOiAyLjE2LFxuICAxNDogMi4xNDUsXG4gIDE1OiAyLjEzMSxcbiAgMTY6IDIuMTIsXG4gIDE3OiAyLjExLFxuICAxODogMi4xMDEsXG4gIDE5OiAyLjA5MyxcbiAgMjA6IDIuMDg2LFxuICAyMTogMi4wOCxcbiAgMjI6IDIuMDc0LFxuICAyMzogMi4wNjksXG4gIDI0OiAyLjA2NCxcbiAgMjU6IDIuMDYsXG4gIDI2OiAyLjA1NixcbiAgMjc6IDIuMDUyLFxuICAyODogMi4wNDgsXG4gIDI5OiAyLjA0NSxcbiAgMzA6IDIuMDQyLFxuICAzMTogMi4wMzk5LFxuICAzMjogMi4wMzc4LFxuICAzMzogMi4wMzU3LFxuICAzNDogMi4wMzM2LFxuICAzNTogMi4wMzE1LFxuICAzNjogMi4wMjk0LFxuICAzNzogMi4wMjczLFxuICAzODogMi4wMjUyLFxuICAzOTogMi4wMjMxLFxuICA0MDogMi4wMjEsXG4gIDQxOiAyLjAxOTgsXG4gIDQyOiAyLjAxODYsXG4gIDQzOiAyLjAxNzQsXG4gIDQ0OiAyLjAxNjIsXG4gIDQ1OiAyLjAxNSxcbiAgNDY6IDIuMDEzOCxcbiAgNDc6IDIuMDEyNixcbiAgNDg6IDIuMDExNCxcbiAgNDk6IDIuMDEwMixcbiAgNTA6IDIuMDA5LFxuICA1MTogMi4wMDgxLFxuICA1MjogMi4wMDcyLFxuICA1MzogMi4wMDYzLFxuICA1NDogMi4wMDU0LFxuICA1NTogMi4wMDQ1LFxuICA1NjogMi4wMDM2LFxuICA1NzogMi4wMDI3LFxuICA1ODogMi4wMDE4LFxuICA1OTogMi4wMDA5LFxuICA2MDogMixcbiAgNjE6IDEuOTk5NSxcbiAgNjI6IDEuOTk5LFxuICA2MzogMS45OTg1LFxuICA2NDogMS45OTgsXG4gIDY1OiAxLjk5NzUsXG4gIDY2OiAxLjk5NyxcbiAgNjc6IDEuOTk2NSxcbiAgNjg6IDEuOTk2LFxuICA2OTogMS45OTU1LFxuICA3MDogMS45OTUsXG4gIDcxOiAxLjk5NDUsXG4gIDcyOiAxLjk5NCxcbiAgNzM6IDEuOTkzNSxcbiAgNzQ6IDEuOTkzLFxuICA3NTogMS45OTI1LFxuICA3NjogMS45OTIsXG4gIDc3OiAxLjk5MTUsXG4gIDc4OiAxLjk5MSxcbiAgNzk6IDEuOTkwNSxcbiAgODA6IDEuOTksXG4gIDgxOiAxLjk4OTcsXG4gIDgyOiAxLjk4OTQsXG4gIDgzOiAxLjk4OTEsXG4gIDg0OiAxLjk4ODgsXG4gIDg1OiAxLjk4ODUsXG4gIDg2OiAxLjk4ODIsXG4gIDg3OiAxLjk4NzksXG4gIDg4OiAxLjk4NzYsXG4gIDg5OiAxLjk4NzMsXG4gIDkwOiAxLjk4NyxcbiAgOTE6IDEuOTg2NyxcbiAgOTI6IDEuOTg2NCxcbiAgOTM6IDEuOTg2MSxcbiAgOTQ6IDEuOTg1OCxcbiAgOTU6IDEuOTg1NSxcbiAgOTY6IDEuOTg1MixcbiAgOTc6IDEuOTg0OSxcbiAgOTg6IDEuOTg0NixcbiAgOTk6IDEuOTg0MyxcbiAgMTAwOiAxLjk4NCxcbiAgMTAxOiAxLjk4MzgsXG4gIDEwMjogMS45ODM2LFxuICAxMDM6IDEuOTgzNCxcbiAgMTA0OiAxLjk4MzIsXG4gIDEwNTogMS45ODMsXG4gIDEwNjogMS45ODI4LFxuICAxMDc6IDEuOTgyNixcbiAgMTA4OiAxLjk4MjQsXG4gIDEwOTogMS45ODIyLFxuICAxMTA6IDEuOTgyLFxuICAxMTE6IDEuOTgxOCxcbiAgMTEyOiAxLjk4MTYsXG4gIDExMzogMS45ODE0LFxuICAxMTQ6IDEuOTgxMixcbiAgMTE1OiAxLjk4MTksXG4gIDExNjogMS45ODA4LFxuICAxMTc6IDEuOTgwNixcbiAgMTE4OiAxLjk4MDQsXG4gIDExOTogMS45ODAyLFxuICAxMjA6IDEuOTgsXG4gIGluZmluaXR5OiAxLjk2XG59LCBOID0gRztcblxuLy8gc3JjL3V0aWxzLnRzXG52YXIgSiA9IChzKSA9PiBzIC8gMWU2LCBVID0gKCkgPT4gSihOdW1iZXIocHJvY2Vzcy5ocnRpbWUuYmlnaW50KCkpKSwgQiA9ICgpID0+IHBlcmZvcm1hbmNlLm5vdygpO1xuZnVuY3Rpb24gVyhzKSB7XG4gIHJldHVybiBzICE9PSBudWxsICYmIHR5cGVvZiBzID09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHMudGhlbiA9PSBcImZ1bmN0aW9uXCI7XG59XG52YXIgUyA9IChzLCBuKSA9PiBzLnJlZHVjZSgoZSwgcikgPT4gZSArIChyIC0gbikgKiogMiwgMCkgLyAocy5sZW5ndGggLSAxKSB8fCAwLCBYID0gKGFzeW5jICgpID0+IHtcbn0pLmNvbnN0cnVjdG9yLCBaID0gKHMpID0+IHMuY29uc3RydWN0b3IgPT09IFgsIHogPSBhc3luYyAocykgPT4ge1xuICBpZiAoWihzLmZuKSlcbiAgICByZXR1cm4gITA7XG4gIHRyeSB7XG4gICAgaWYgKHMub3B0cy5iZWZvcmVFYWNoICE9IG51bGwpXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzLm9wdHMuYmVmb3JlRWFjaC5jYWxsKHMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgIGxldCBuID0gcy5mbigpLCB0ID0gVyhuKTtcbiAgICBpZiAodClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG47XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgaWYgKHMub3B0cy5hZnRlckVhY2ggIT0gbnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHMub3B0cy5hZnRlckVhY2guY2FsbChzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICByZXR1cm4gdDtcbiAgfSBjYXRjaCAobikge1xuICAgIHJldHVybiAhMTtcbiAgfVxufTtcblxuLy8gc3JjL3Rhc2sudHNcbnZhciBiID0gY2xhc3MgZXh0ZW5kcyBFdmVudFRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKHQsIGUsIHIsIGkgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgLypcbiAgICAgKiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSB0YXNrXG4gICAgICogZnVuY3Rpb24gaGFzIGJlZW4gZXhlY3V0ZWRcbiAgICAgKi9cbiAgICB0aGlzLnJ1bnMgPSAwO1xuICAgIHRoaXMuYmVuY2ggPSB0LCB0aGlzLm5hbWUgPSBlLCB0aGlzLmZuID0gciwgdGhpcy5vcHRzID0gaTtcbiAgfVxuICBhc3luYyBsb29wKHQsIGUpIHtcbiAgICB2YXIgVDtcbiAgICBsZXQgciA9IHRoaXMuYmVuY2guY29uY3VycmVuY3kgPT09IFwidGFza1wiLCB7IHRocmVzaG9sZDogaSB9ID0gdGhpcy5iZW5jaCwgYyA9IDAsIGggPSBbXTtcbiAgICBpZiAodGhpcy5vcHRzLmJlZm9yZUFsbCAhPSBudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5vcHRzLmJlZm9yZUFsbC5jYWxsKHRoaXMpO1xuICAgICAgfSBjYXRjaCAodSkge1xuICAgICAgICByZXR1cm4geyBlcnJvcjogdSB9O1xuICAgICAgfVxuICAgIGxldCBwID0gYXdhaXQgeih0aGlzKSwgYSA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMub3B0cy5iZWZvcmVFYWNoICE9IG51bGwgJiYgYXdhaXQgdGhpcy5vcHRzLmJlZm9yZUVhY2guY2FsbCh0aGlzKTtcbiAgICAgIGxldCB1ID0gMDtcbiAgICAgIGlmIChwKSB7XG4gICAgICAgIGxldCB2ID0gdGhpcy5iZW5jaC5ub3coKTtcbiAgICAgICAgYXdhaXQgdGhpcy5mbi5jYWxsKHRoaXMpLCB1ID0gdGhpcy5iZW5jaC5ub3coKSAtIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgdiA9IHRoaXMuYmVuY2gubm93KCk7XG4gICAgICAgIHRoaXMuZm4uY2FsbCh0aGlzKSwgdSA9IHRoaXMuYmVuY2gubm93KCkgLSB2O1xuICAgICAgfVxuICAgICAgaC5wdXNoKHUpLCBjICs9IHUsIHRoaXMub3B0cy5hZnRlckVhY2ggIT0gbnVsbCAmJiBhd2FpdCB0aGlzLm9wdHMuYWZ0ZXJFYWNoLmNhbGwodGhpcyk7XG4gICAgfSwgbCA9IHkoaSk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB1ID0gW107XG4gICAgICBmb3IgKDsgKGMgPCB0IHx8IGgubGVuZ3RoICsgbC5hY3RpdmVDb3VudCArIGwucGVuZGluZ0NvdW50IDwgZSkgJiYgISgoVCA9IHRoaXMuYmVuY2guc2lnbmFsKSAhPSBudWxsICYmIFQuYWJvcnRlZCk7IClcbiAgICAgICAgciA/IHUucHVzaChsKGEpKSA6IGF3YWl0IGEoKTtcbiAgICAgIHUubGVuZ3RoICYmIGF3YWl0IFByb21pc2UuYWxsKHUpO1xuICAgIH0gY2F0Y2ggKHUpIHtcbiAgICAgIHJldHVybiB7IGVycm9yOiB1IH07XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdHMuYWZ0ZXJBbGwgIT0gbnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0cy5hZnRlckFsbC5jYWxsKHRoaXMpO1xuICAgICAgfSBjYXRjaCAodSkge1xuICAgICAgICByZXR1cm4geyBlcnJvcjogdSB9O1xuICAgICAgfVxuICAgIHJldHVybiB7IHNhbXBsZXM6IGggfTtcbiAgfVxuICAvKipcbiAgICogcnVuIHRoZSBjdXJyZW50IHRhc2sgYW5kIHdyaXRlIHRoZSByZXN1bHRzIGluIGBUYXNrLnJlc3VsdGAgb2JqZWN0XG4gICAqL1xuICBhc3luYyBydW4oKSB7XG4gICAgdmFyIHIsIGk7XG4gICAgaWYgKChyID0gdGhpcy5yZXN1bHQpICE9IG51bGwgJiYgci5lcnJvcilcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwic3RhcnRcIiwgdGhpcykpLCBhd2FpdCB0aGlzLmJlbmNoLnNldHVwKHRoaXMsIFwicnVuXCIpO1xuICAgIGxldCB7IHNhbXBsZXM6IHQsIGVycm9yOiBlIH0gPSBhd2FpdCB0aGlzLmxvb3AodGhpcy5iZW5jaC50aW1lLCB0aGlzLmJlbmNoLml0ZXJhdGlvbnMpO1xuICAgIGlmICh0aGlzLmJlbmNoLnRlYXJkb3duKHRoaXMsIFwicnVuXCIpLCB0KSB7XG4gICAgICBsZXQgYyA9IHQucmVkdWNlKChMLCBBKSA9PiBMICsgQSwgMCk7XG4gICAgICB0aGlzLnJ1bnMgPSB0Lmxlbmd0aCwgdC5zb3J0KChMLCBBKSA9PiBMIC0gQSk7XG4gICAgICBsZXQgaCA9IGMgLyB0aGlzLnJ1bnMsIHAgPSAxZTMgLyBoLCBhID0gdC5sZW5ndGgsIGwgPSBhIC0gMSwgVCA9IHRbMF0sIHUgPSB0W2xdLCB2ID0gYyAvIHQubGVuZ3RoIHx8IDAsIFAgPSBTKHQsIHYpLCBSID0gTWF0aC5zcXJ0KFApLCBJID0gUiAvIE1hdGguc3FydChhKSwgXyA9IE5bU3RyaW5nKE1hdGgucm91bmQobCkgfHwgMSldIHx8IE4uaW5maW5pdHksIEsgPSBJICogXywgaiA9IEsgLyB2ICogMTAwLCBIID0gdFtNYXRoLmNlaWwoYSAqIDAuNzUpIC0gMV0sIFYgPSB0W01hdGguY2VpbChhICogMC45OSkgLSAxXSwgUSA9IHRbTWF0aC5jZWlsKGEgKiAwLjk5NSkgLSAxXSwgWSA9IHRbTWF0aC5jZWlsKGEgKiAwLjk5OSkgLSAxXTtcbiAgICAgIGlmICgoaSA9IHRoaXMuYmVuY2guc2lnbmFsKSAhPSBudWxsICYmIGkuYWJvcnRlZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB0aGlzLnNldFJlc3VsdCh7XG4gICAgICAgIHRvdGFsVGltZTogYyxcbiAgICAgICAgbWluOiBULFxuICAgICAgICBtYXg6IHUsXG4gICAgICAgIGh6OiBwLFxuICAgICAgICBwZXJpb2Q6IGgsXG4gICAgICAgIHNhbXBsZXM6IHQsXG4gICAgICAgIG1lYW46IHYsXG4gICAgICAgIHZhcmlhbmNlOiBQLFxuICAgICAgICBzZDogUixcbiAgICAgICAgc2VtOiBJLFxuICAgICAgICBkZjogbCxcbiAgICAgICAgY3JpdGljYWw6IF8sXG4gICAgICAgIG1vZTogSyxcbiAgICAgICAgcm1lOiBqLFxuICAgICAgICBwNzU6IEgsXG4gICAgICAgIHA5OTogVixcbiAgICAgICAgcDk5NTogUSxcbiAgICAgICAgcDk5OTogWVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChlKSB7XG4gICAgICBpZiAodGhpcy5zZXRSZXN1bHQoeyBlcnJvcjogZSB9KSwgdGhpcy5iZW5jaC50aHJvd3MpXG4gICAgICAgIHRocm93IGU7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImVycm9yXCIsIHRoaXMpKSwgdGhpcy5iZW5jaC5kaXNwYXRjaEV2ZW50KG8oXCJlcnJvclwiLCB0aGlzKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImN5Y2xlXCIsIHRoaXMpKSwgdGhpcy5iZW5jaC5kaXNwYXRjaEV2ZW50KG8oXCJjeWNsZVwiLCB0aGlzKSksIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwiY29tcGxldGVcIiwgdGhpcykpLCB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB3YXJtdXAgdGhlIGN1cnJlbnQgdGFza1xuICAgKi9cbiAgYXN5bmMgd2FybXVwKCkge1xuICAgIHZhciBlO1xuICAgIGlmICgoZSA9IHRoaXMucmVzdWx0KSAhPSBudWxsICYmIGUuZXJyb3IpXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJ3YXJtdXBcIiwgdGhpcykpLCBhd2FpdCB0aGlzLmJlbmNoLnNldHVwKHRoaXMsIFwid2FybXVwXCIpO1xuICAgIGxldCB7IGVycm9yOiB0IH0gPSBhd2FpdCB0aGlzLmxvb3AodGhpcy5iZW5jaC53YXJtdXBUaW1lLCB0aGlzLmJlbmNoLndhcm11cEl0ZXJhdGlvbnMpO1xuICAgIGlmICh0aGlzLmJlbmNoLnRlYXJkb3duKHRoaXMsIFwid2FybXVwXCIpLCB0ICYmICh0aGlzLnNldFJlc3VsdCh7IGVycm9yOiB0IH0pLCB0aGlzLmJlbmNoLnRocm93cykpXG4gICAgICB0aHJvdyB0O1xuICB9XG4gIGFkZEV2ZW50TGlzdGVuZXIodCwgZSwgcikge1xuICAgIHN1cGVyLmFkZEV2ZW50TGlzdGVuZXIodCwgZSwgcik7XG4gIH1cbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCBlLCByKSB7XG4gICAgc3VwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCBlLCByKTtcbiAgfVxuICAvKipcbiAgICogY2hhbmdlIHRoZSByZXN1bHQgb2JqZWN0IHZhbHVlc1xuICAgKi9cbiAgc2V0UmVzdWx0KHQpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHsgLi4udGhpcy5yZXN1bHQsIC4uLnQgfSwgT2JqZWN0LmZyZWV6ZSh0aGlzLnJlc3VsdCk7XG4gIH1cbiAgLyoqXG4gICAqIHJlc2V0IHRoZSB0YXNrIHRvIG1ha2UgdGhlIGBUYXNrLnJ1bnNgIGEgemVyby12YWx1ZSBhbmQgcmVtb3ZlIHRoZSBgVGFzay5yZXN1bHRgXG4gICAqIG9iamVjdFxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJyZXNldFwiLCB0aGlzKSksIHRoaXMucnVucyA9IDAsIHRoaXMucmVzdWx0ID0gdm9pZCAwO1xuICB9XG59O1xuXG4vLyBzcmMvYmVuY2gudHNcbnZhciB4ID0gY2xhc3MgZXh0ZW5kcyBFdmVudFRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKHQgPSB7fSkge1xuICAgIHZhciBlLCByLCBpLCBjLCBoLCBwLCBhLCBsO1xuICAgIHN1cGVyKCk7XG4gICAgLypcbiAgICAgKiBAcHJpdmF0ZSB0aGUgdGFzayBtYXBcbiAgICAgKi9cbiAgICB0aGlzLl90YXNrcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5fdG9kb3MgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIC8qKlxuICAgICogRXhlY3V0ZXMgdGFza3MgY29uY3VycmVudGx5IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgY29uY3VycmVuY3kgbW9kZS5cbiAgICAqXG4gICAgKiAtIFdoZW4gYG1vZGVgIGlzIHNldCB0byBgbnVsbGAgKGRlZmF1bHQpLCBjb25jdXJyZW5jeSBpcyBkaXNhYmxlZC5cbiAgICAqIC0gV2hlbiBgbW9kZWAgaXMgc2V0IHRvICd0YXNrJywgZWFjaCB0YXNrJ3MgaXRlcmF0aW9ucyAoY2FsbHMgb2YgYSB0YXNrIGZ1bmN0aW9uKSBydW4gY29uY3VycmVudGx5LlxuICAgICogLSBXaGVuIGBtb2RlYCBpcyBzZXQgdG8gJ2JlbmNoJywgZGlmZmVyZW50IHRhc2tzIHdpdGhpbiB0aGUgYmVuY2ggcnVuIGNvbmN1cnJlbnRseS5cbiAgICAqL1xuICAgIHRoaXMuY29uY3VycmVuY3kgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHRhc2tzIHRvIHJ1bi4gRGVmYXVsdHMgdG8gSW5maW5pdHkuXG4gICAgICovXG4gICAgdGhpcy50aHJlc2hvbGQgPSAxIC8gMDtcbiAgICB0aGlzLndhcm11cFRpbWUgPSAxMDA7XG4gICAgdGhpcy53YXJtdXBJdGVyYXRpb25zID0gNTtcbiAgICB0aGlzLnRpbWUgPSA1MDA7XG4gICAgdGhpcy5pdGVyYXRpb25zID0gMTA7XG4gICAgdGhpcy5ub3cgPSBCO1xuICAgIHRoaXMubm93ID0gKGUgPSB0Lm5vdykgIT0gbnVsbCA/IGUgOiB0aGlzLm5vdywgdGhpcy53YXJtdXBUaW1lID0gKHIgPSB0Lndhcm11cFRpbWUpICE9IG51bGwgPyByIDogdGhpcy53YXJtdXBUaW1lLCB0aGlzLndhcm11cEl0ZXJhdGlvbnMgPSAoaSA9IHQud2FybXVwSXRlcmF0aW9ucykgIT0gbnVsbCA/IGkgOiB0aGlzLndhcm11cEl0ZXJhdGlvbnMsIHRoaXMudGltZSA9IChjID0gdC50aW1lKSAhPSBudWxsID8gYyA6IHRoaXMudGltZSwgdGhpcy5pdGVyYXRpb25zID0gKGggPSB0Lml0ZXJhdGlvbnMpICE9IG51bGwgPyBoIDogdGhpcy5pdGVyYXRpb25zLCB0aGlzLnNpZ25hbCA9IHQuc2lnbmFsLCB0aGlzLnRocm93cyA9IChwID0gdC50aHJvd3MpICE9IG51bGwgPyBwIDogITEsIHRoaXMuc2V0dXAgPSAoYSA9IHQuc2V0dXApICE9IG51bGwgPyBhIDogKCkgPT4ge1xuICAgIH0sIHRoaXMudGVhcmRvd24gPSAobCA9IHQudGVhcmRvd24pICE9IG51bGwgPyBsIDogKCkgPT4ge1xuICAgIH0sIHRoaXMuc2lnbmFsICYmIHRoaXMuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBcImFib3J0XCIsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwiYWJvcnRcIikpO1xuICAgICAgfSxcbiAgICAgIHsgb25jZTogITAgfVxuICAgICk7XG4gIH1cbiAgcnVuVGFzayh0KSB7XG4gICAgdmFyIGU7XG4gICAgcmV0dXJuIChlID0gdGhpcy5zaWduYWwpICE9IG51bGwgJiYgZS5hYm9ydGVkID8gdCA6IHQucnVuKCk7XG4gIH1cbiAgLyoqXG4gICAqIHJ1biB0aGUgYWRkZWQgdGFza3MgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlXG4gICAqIHtAbGluayBhZGR9IG1ldGhvZC5cbiAgICogTm90ZTogVGhpcyBtZXRob2QgZG9lcyBub3QgZG8gYW55IHdhcm11cC4gQ2FsbCB7QGxpbmsgd2FybXVwfSBmb3IgdGhhdC5cbiAgICovXG4gIGFzeW5jIHJ1bigpIHtcbiAgICBpZiAodGhpcy5jb25jdXJyZW5jeSA9PT0gXCJiZW5jaFwiKVxuICAgICAgcmV0dXJuIHRoaXMucnVuQ29uY3VycmVudGx5KHRoaXMudGhyZXNob2xkLCB0aGlzLmNvbmN1cnJlbmN5KTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcInN0YXJ0XCIpKTtcbiAgICBsZXQgdCA9IFtdO1xuICAgIGZvciAobGV0IGUgb2YgWy4uLnRoaXMuX3Rhc2tzLnZhbHVlcygpXSlcbiAgICAgIHQucHVzaChhd2FpdCB0aGlzLnJ1blRhc2soZSkpO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImNvbXBsZXRlXCIpKSwgdDtcbiAgfVxuICAvKipcbiAgICogU2VlIEJlbmNoLntAbGluayBjb25jdXJyZW5jeX1cbiAgICovXG4gIGFzeW5jIHJ1bkNvbmN1cnJlbnRseSh0ID0gMSAvIDAsIGUgPSBcImJlbmNoXCIpIHtcbiAgICBpZiAodGhpcy50aHJlc2hvbGQgPSB0LCB0aGlzLmNvbmN1cnJlbmN5ID0gZSwgZSA9PT0gXCJ0YXNrXCIpXG4gICAgICByZXR1cm4gdGhpcy5ydW4oKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcInN0YXJ0XCIpKTtcbiAgICBsZXQgciA9IHkodCksIGkgPSBbXTtcbiAgICBmb3IgKGxldCBoIG9mIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV0pXG4gICAgICBpLnB1c2gocigoKSA9PiB0aGlzLnJ1blRhc2soaCkpKTtcbiAgICBsZXQgYyA9IGF3YWl0IFByb21pc2UuYWxsKGkpO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImNvbXBsZXRlXCIpKSwgYztcbiAgfVxuICAvKipcbiAgICogd2FybXVwIHRoZSBiZW5jaG1hcmsgdGFza3MuXG4gICAqIFRoaXMgaXMgbm90IHJ1biBieSBkZWZhdWx0IGJ5IHRoZSB7QGxpbmsgcnVufSBtZXRob2QuXG4gICAqL1xuICBhc3luYyB3YXJtdXAoKSB7XG4gICAgaWYgKHRoaXMuY29uY3VycmVuY3kgPT09IFwiYmVuY2hcIikge1xuICAgICAgYXdhaXQgdGhpcy53YXJtdXBDb25jdXJyZW50bHkodGhpcy50aHJlc2hvbGQsIHRoaXMuY29uY3VycmVuY3kpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcIndhcm11cFwiKSk7XG4gICAgZm9yIChsZXQgWywgdF0gb2YgdGhpcy5fdGFza3MpXG4gICAgICBhd2FpdCB0Lndhcm11cCgpO1xuICB9XG4gIC8qKlxuICAgKiB3YXJtdXAgdGhlIGJlbmNobWFyayB0YXNrcyBjb25jdXJyZW50bHkuXG4gICAqIFRoaXMgaXMgbm90IHJ1biBieSBkZWZhdWx0IGJ5IHRoZSB7QGxpbmsgcnVuQ29uY3VycmVudGx5fSBtZXRob2QuXG4gICAqL1xuICBhc3luYyB3YXJtdXBDb25jdXJyZW50bHkodCA9IDEgLyAwLCBlID0gXCJiZW5jaFwiKSB7XG4gICAgaWYgKHRoaXMudGhyZXNob2xkID0gdCwgdGhpcy5jb25jdXJyZW5jeSA9IGUsIGUgPT09IFwidGFza1wiKSB7XG4gICAgICBhd2FpdCB0aGlzLndhcm11cCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcIndhcm11cFwiKSk7XG4gICAgbGV0IHIgPSB5KHQpLCBpID0gW107XG4gICAgZm9yIChsZXQgWywgY10gb2YgdGhpcy5fdGFza3MpXG4gICAgICBpLnB1c2gocigoKSA9PiBjLndhcm11cCgpKSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaSk7XG4gIH1cbiAgLyoqXG4gICAqIHJlc2V0IGVhY2ggdGFzayBhbmQgcmVtb3ZlIGl0cyByZXN1bHRcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwicmVzZXRcIikpLCB0aGlzLl90YXNrcy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICB0LnJlc2V0KCk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIGFkZCBhIGJlbmNobWFyayB0YXNrIHRvIHRoZSB0YXNrIG1hcFxuICAgKi9cbiAgYWRkKHQsIGUsIHIgPSB7fSkge1xuICAgIGxldCBpID0gbmV3IGIodGhpcywgdCwgZSwgcik7XG4gICAgcmV0dXJuIHRoaXMuX3Rhc2tzLnNldCh0LCBpKSwgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJhZGRcIiwgaSkpLCB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBhZGQgYSBiZW5jaG1hcmsgdG9kbyB0byB0aGUgdG9kbyBtYXBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgdG9kbyh0LCBlID0gKCkgPT4ge1xuICB9LCByID0ge30pIHtcbiAgICBsZXQgaSA9IG5ldyBiKHRoaXMsIHQsIGUsIHIpO1xuICAgIHJldHVybiB0aGlzLl90b2Rvcy5zZXQodCwgaSksIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwidG9kb1wiLCBpKSksIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIHJlbW92ZSBhIGJlbmNobWFyayB0YXNrIGZyb20gdGhlIHRhc2sgbWFwXG4gICAqL1xuICByZW1vdmUodCkge1xuICAgIGxldCBlID0gdGhpcy5nZXRUYXNrKHQpO1xuICAgIHJldHVybiBlICYmICh0aGlzLmRpc3BhdGNoRXZlbnQobyhcInJlbW92ZVwiLCBlKSksIHRoaXMuX3Rhc2tzLmRlbGV0ZSh0KSksIHRoaXM7XG4gIH1cbiAgYWRkRXZlbnRMaXN0ZW5lcih0LCBlLCByKSB7XG4gICAgc3VwZXIuYWRkRXZlbnRMaXN0ZW5lcih0LCBlLCByKTtcbiAgfVxuICByZW1vdmVFdmVudExpc3RlbmVyKHQsIGUsIHIpIHtcbiAgICBzdXBlci5yZW1vdmVFdmVudExpc3RlbmVyKHQsIGUsIHIpO1xuICB9XG4gIC8qKlxuICAgKiB0YWJsZSBvZiB0aGUgdGFza3MgcmVzdWx0c1xuICAgKi9cbiAgdGFibGUodCkge1xuICAgIHJldHVybiB0aGlzLnRhc2tzLm1hcCgoZSkgPT4ge1xuICAgICAgaWYgKGUucmVzdWx0KSB7XG4gICAgICAgIGlmIChlLnJlc3VsdC5lcnJvcilcbiAgICAgICAgICB0aHJvdyBlLnJlc3VsdC5lcnJvcjtcbiAgICAgICAgcmV0dXJuICh0ID09IG51bGwgPyB2b2lkIDAgOiB0KGUpKSB8fCB7XG4gICAgICAgICAgXCJUYXNrIE5hbWVcIjogZS5uYW1lLFxuICAgICAgICAgIFwib3BzL3NlY1wiOiBlLnJlc3VsdC5lcnJvciA/IFwiTmFOXCIgOiBwYXJzZUludChlLnJlc3VsdC5oei50b1N0cmluZygpLCAxMCkudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgICAgICBcIkF2ZXJhZ2UgVGltZSAobnMpXCI6IGUucmVzdWx0LmVycm9yID8gXCJOYU5cIiA6IGUucmVzdWx0Lm1lYW4gKiAxZTMgKiAxZTMsXG4gICAgICAgICAgTWFyZ2luOiBlLnJlc3VsdC5lcnJvciA/IFwiTmFOXCIgOiBgXFx4QjEke2UucmVzdWx0LnJtZS50b0ZpeGVkKDIpfSVgLFxuICAgICAgICAgIFNhbXBsZXM6IGUucmVzdWx0LmVycm9yID8gXCJOYU5cIiA6IGUucmVzdWx0LnNhbXBsZXMubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogKGdldHRlcikgdGFza3MgcmVzdWx0cyBhcyBhbiBhcnJheVxuICAgKi9cbiAgZ2V0IHJlc3VsdHMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV0ubWFwKCh0KSA9PiB0LnJlc3VsdCk7XG4gIH1cbiAgLyoqXG4gICAqIChnZXR0ZXIpIHRhc2tzIGFzIGFuIGFycmF5XG4gICAqL1xuICBnZXQgdGFza3MoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV07XG4gIH1cbiAgZ2V0IHRvZG9zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fdG9kb3MudmFsdWVzKCldO1xuICB9XG4gIC8qKlxuICAgKiBnZXQgYSB0YXNrIGJhc2VkIG9uIHRoZSB0YXNrIG5hbWVcbiAgICovXG4gIGdldFRhc2sodCkge1xuICAgIHJldHVybiB0aGlzLl90YXNrcy5nZXQodCk7XG4gIH1cbn07XG5leHBvcnQge1xuICB4IGFzIEJlbmNoLFxuICBiIGFzIFRhc2ssXG4gIFUgYXMgaHJ0aW1lTm93LFxuICBCIGFzIG5vd1xufTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksSUFBSSxPQUFPO0FBQ2YsSUFBSSxLQUFLLE1BQU07QUFDYixPQUFNLFVBQVUsRUFBRTs7QUFFcEIsSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFNLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRztDQUFFLFlBQVksQ0FBQztDQUFHLGNBQWMsQ0FBQztDQUFHLFVBQVUsQ0FBQztDQUFHLE9BQU87Q0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLO0FBQzdHLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxLQUFLLFdBQVcsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtBQUM5RyxJQUFJLEtBQUssR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsb0RBQW9ELEdBQUcsYUFBYSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUU7QUFDalQsSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLE9BQU87Q0FDdkIsSUFBSSxFQUFFLEdBQUc7QUFDUCxJQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUU7O0NBRWYsSUFBSSxJQUFJO0FBQ04sU0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFOztDQUVwQjtBQUdELElBQUksSUFBSSxNQUFNO0NBQ1osWUFBWSxHQUFHO0FBQ2IsSUFBRSxNQUFNLFFBQVE7QUFDaEIsSUFBRSxNQUFNLE9BQU87QUFDZixPQUFLLFFBQVE7O0dBRWQsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNO0NBQ3BCLGNBQWM7QUFDWixJQUFFLE1BQU0sRUFBRTtBQUNWLElBQUUsTUFBTSxFQUFFO0FBQ1YsSUFBRSxNQUFNLEVBQUU7QUFDVixPQUFLLE9BQU87O0NBRWQsUUFBUSxHQUFHO0VBQ1QsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFO0FBQ2hCLElBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQzs7Q0FFakcsVUFBVTtFQUNSLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUNsQixNQUFJLEVBQ0YsUUFBTyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRTs7Q0FFMUQsUUFBUTtBQUNOLElBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxHQUFHLEVBQUU7O0NBRXZELElBQUksT0FBTztBQUNULFNBQU8sRUFBRSxNQUFNLEVBQUU7O0NBRW5CLEVBQUUsT0FBTyxZQUFZO0VBQ25CLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUNsQixTQUFPLEdBQ0wsT0FBTSxFQUFFLE9BQU8sSUFBSSxFQUFFOzs7QUFHM0Isb0JBQUksSUFBSSxTQUFTLEVBQUUsb0JBQUksSUFBSSxTQUFTLEVBQUUsb0JBQUksSUFBSSxTQUFTO0FBR3ZELFNBQVMsRUFBRSxHQUFHO0FBQ1osS0FBSSxHQUFHLE9BQU8sVUFBVSxFQUFFLElBQUksTUFBTSxPQUFPLHNCQUFzQixJQUFJLEdBQ25FLE9BQU0sSUFBSSxVQUFVLHNEQUFzRDtDQUM1RSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLFVBQVU7QUFDaEMsT0FBSyxFQUFFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRTtJQUMvQixJQUFJLE9BQU8sR0FBRyxHQUFHLE1BQU07QUFDeEI7RUFDQSxJQUFJLEtBQUssWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHO0FBQy9CLElBQUUsRUFBRTtBQUNKLE1BQUk7QUFDRixTQUFNO1dBQ0MsR0FBRztBQUVaLEtBQUc7SUFDRixLQUFLLEdBQUcsR0FBRyxNQUFNO0FBQ2xCLElBQUUsUUFBUSxFQUFFLEtBQUssS0FBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxhQUFhLE1BQU0sUUFBUSxTQUFTLEVBQUUsSUFBSSxLQUFLLEVBQUUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUk7SUFDbEgsS0FBSyxHQUFHLEdBQUcsTUFBTSxJQUFJLFNBQVMsTUFBTTtBQUNyQyxJQUFFLEdBQUcsR0FBRyxFQUFFO0dBQ1Y7QUFDRixRQUFPLE9BQU8saUJBQWlCLEdBQUc7RUFDaEMsYUFBYSxFQUNYLFdBQVcsR0FDWjtFQUNELGNBQWMsRUFDWixXQUFXLEVBQUUsTUFDZDtFQUNELFlBQVksRUFDVixhQUFhO0FBQ1gsS0FBRSxPQUFPO0tBRVo7RUFDRixDQUFDLEVBQUU7O0FBSU4sU0FBUyxFQUFFLEdBQUcsSUFBSSxNQUFNO0NBQ3RCLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRTtBQUNwQixRQUFPLEtBQUssT0FBTyxlQUFlLEdBQUcsUUFBUTtFQUMzQyxPQUFPO0VBQ1AsWUFBWSxDQUFDO0VBQ2IsVUFBVSxDQUFDO0VBQ1gsY0FBYyxDQUFDO0VBQ2hCLENBQUMsRUFBRTs7QUFJTixJQTBIRyxJQTFISztDQUNOLEdBQUc7Q0FDSCxHQUFHO0NBQ0gsR0FBRztDQUNILEdBQUc7Q0FDSCxHQUFHO0NBQ0gsR0FBRztDQUNILEdBQUc7Q0FDSCxHQUFHO0NBQ0gsR0FBRztDQUNILElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NBQ0osSUFBSTtDQUNKLElBQUk7Q0FDSixJQUFJO0NB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
|
|
517
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3RpbnliZW5jaEAyLjkuMC9ub2RlX21vZHVsZXMvdGlueWJlbmNoL2Rpc3QvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyICQgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgQyA9IChzKSA9PiB7XG4gIHRocm93IFR5cGVFcnJvcihzKTtcbn07XG52YXIgRCA9IChzLCBuLCB0KSA9PiBuIGluIHMgPyAkKHMsIG4sIHsgZW51bWVyYWJsZTogITAsIGNvbmZpZ3VyYWJsZTogITAsIHdyaXRhYmxlOiAhMCwgdmFsdWU6IHQgfSkgOiBzW25dID0gdDtcbnZhciBPID0gKHMsIG4sIHQpID0+IEQocywgdHlwZW9mIG4gIT0gXCJzeW1ib2xcIiA/IG4gKyBcIlwiIDogbiwgdCksIHEgPSAocywgbiwgdCkgPT4gbi5oYXMocykgfHwgQyhcIkNhbm5vdCBcIiArIHQpO1xudmFyIGQgPSAocywgbiwgdCkgPT4gKHEocywgbiwgXCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZFwiKSwgdCA/IHQuY2FsbChzKSA6IG4uZ2V0KHMpKSwgayA9IChzLCBuLCB0KSA9PiBuLmhhcyhzKSA/IEMoXCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlXCIpIDogbiBpbnN0YW5jZW9mIFdlYWtTZXQgPyBuLmFkZChzKSA6IG4uc2V0KHMsIHQpLCBmID0gKHMsIG4sIHQsIGUpID0+IChxKHMsIG4sIFwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZFwiKSwgZSA/IGUuY2FsbChzLCB0KSA6IG4uc2V0KHMsIHQpLCB0KTtcbnZhciBGID0gKHMsIG4sIHQsIGUpID0+ICh7XG4gIHNldCBfKHIpIHtcbiAgICBmKHMsIG4sIHIsIHQpO1xuICB9LFxuICBnZXQgXygpIHtcbiAgICByZXR1cm4gZChzLCBuLCBlKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy8ucG5wbS95b2N0by1xdWV1ZUAxLjAuMC9ub2RlX21vZHVsZXMveW9jdG8tcXVldWUvaW5kZXguanNcbnZhciBNID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihuKSB7XG4gICAgTyh0aGlzLCBcInZhbHVlXCIpO1xuICAgIE8odGhpcywgXCJuZXh0XCIpO1xuICAgIHRoaXMudmFsdWUgPSBuO1xuICB9XG59LCBtLCB3LCBFLCBnID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBrKHRoaXMsIG0pO1xuICAgIGsodGhpcywgdyk7XG4gICAgayh0aGlzLCBFKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cbiAgZW5xdWV1ZShuKSB7XG4gICAgbGV0IHQgPSBuZXcgTShuKTtcbiAgICBkKHRoaXMsIG0pID8gKGQodGhpcywgdykubmV4dCA9IHQsIGYodGhpcywgdywgdCkpIDogKGYodGhpcywgbSwgdCksIGYodGhpcywgdywgdCkpLCBGKHRoaXMsIEUpLl8rKztcbiAgfVxuICBkZXF1ZXVlKCkge1xuICAgIGxldCBuID0gZCh0aGlzLCBtKTtcbiAgICBpZiAobilcbiAgICAgIHJldHVybiBmKHRoaXMsIG0sIGQodGhpcywgbSkubmV4dCksIEYodGhpcywgRSkuXy0tLCBuLnZhbHVlO1xuICB9XG4gIGNsZWFyKCkge1xuICAgIGYodGhpcywgbSwgdm9pZCAwKSwgZih0aGlzLCB3LCB2b2lkIDApLCBmKHRoaXMsIEUsIDApO1xuICB9XG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiBkKHRoaXMsIEUpO1xuICB9XG4gICpbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICBsZXQgbiA9IGQodGhpcywgbSk7XG4gICAgZm9yICg7IG47IClcbiAgICAgIHlpZWxkIG4udmFsdWUsIG4gPSBuLm5leHQ7XG4gIH1cbn07XG5tID0gbmV3IFdlYWtNYXAoKSwgdyA9IG5ldyBXZWFrTWFwKCksIEUgPSBuZXcgV2Vha01hcCgpO1xuXG4vLyBub2RlX21vZHVsZXMvLnBucG0vcC1saW1pdEA0LjAuMC9ub2RlX21vZHVsZXMvcC1saW1pdC9pbmRleC5qc1xuZnVuY3Rpb24geShzKSB7XG4gIGlmICghKChOdW1iZXIuaXNJbnRlZ2VyKHMpIHx8IHMgPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgJiYgcyA+IDApKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBgY29uY3VycmVuY3lgIHRvIGJlIGEgbnVtYmVyIGZyb20gMSBhbmQgdXBcIik7XG4gIGxldCBuID0gbmV3IGcoKSwgdCA9IDAsIGUgPSAoKSA9PiB7XG4gICAgdC0tLCBuLnNpemUgPiAwICYmIG4uZGVxdWV1ZSgpKCk7XG4gIH0sIHIgPSBhc3luYyAoaCwgcCwgYSkgPT4ge1xuICAgIHQrKztcbiAgICBsZXQgbCA9IChhc3luYyAoKSA9PiBoKC4uLmEpKSgpO1xuICAgIHAobCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGw7XG4gICAgfSBjYXRjaCAoVCkge1xuICAgIH1cbiAgICBlKCk7XG4gIH0sIGkgPSAoaCwgcCwgYSkgPT4ge1xuICAgIG4uZW5xdWV1ZShyLmJpbmQodm9pZCAwLCBoLCBwLCBhKSksIChhc3luYyAoKSA9PiAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksIHQgPCBzICYmIG4uc2l6ZSA+IDAgJiYgbi5kZXF1ZXVlKCkoKSkpKCk7XG4gIH0sIGMgPSAoaCwgLi4ucCkgPT4gbmV3IFByb21pc2UoKGEpID0+IHtcbiAgICBpKGgsIGEsIHApO1xuICB9KTtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGMsIHtcbiAgICBhY3RpdmVDb3VudDoge1xuICAgICAgZ2V0OiAoKSA9PiB0XG4gICAgfSxcbiAgICBwZW5kaW5nQ291bnQ6IHtcbiAgICAgIGdldDogKCkgPT4gbi5zaXplXG4gICAgfSxcbiAgICBjbGVhclF1ZXVlOiB7XG4gICAgICB2YWx1ZTogKCkgPT4ge1xuICAgICAgICBuLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICB9KSwgYztcbn1cblxuLy8gc3JjL2V2ZW50LnRzXG5mdW5jdGlvbiBvKHMsIG4gPSBudWxsKSB7XG4gIGxldCB0ID0gbmV3IEV2ZW50KHMpO1xuICByZXR1cm4gbiAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJ0YXNrXCIsIHtcbiAgICB2YWx1ZTogbixcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITEsXG4gICAgY29uZmlndXJhYmxlOiAhMVxuICB9KSwgdDtcbn1cblxuLy8gc3JjL2NvbnN0YW50cy50c1xudmFyIEcgPSB7XG4gIDE6IDEyLjcxLFxuICAyOiA0LjMwMyxcbiAgMzogMy4xODIsXG4gIDQ6IDIuNzc2LFxuICA1OiAyLjU3MSxcbiAgNjogMi40NDcsXG4gIDc6IDIuMzY1LFxuICA4OiAyLjMwNixcbiAgOTogMi4yNjIsXG4gIDEwOiAyLjIyOCxcbiAgMTE6IDIuMjAxLFxuICAxMjogMi4xNzksXG4gIDEzOiAyLjE2LFxuICAxNDogMi4xNDUsXG4gIDE1OiAyLjEzMSxcbiAgMTY6IDIuMTIsXG4gIDE3OiAyLjExLFxuICAxODogMi4xMDEsXG4gIDE5OiAyLjA5MyxcbiAgMjA6IDIuMDg2LFxuICAyMTogMi4wOCxcbiAgMjI6IDIuMDc0LFxuICAyMzogMi4wNjksXG4gIDI0OiAyLjA2NCxcbiAgMjU6IDIuMDYsXG4gIDI2OiAyLjA1NixcbiAgMjc6IDIuMDUyLFxuICAyODogMi4wNDgsXG4gIDI5OiAyLjA0NSxcbiAgMzA6IDIuMDQyLFxuICAzMTogMi4wMzk5LFxuICAzMjogMi4wMzc4LFxuICAzMzogMi4wMzU3LFxuICAzNDogMi4wMzM2LFxuICAzNTogMi4wMzE1LFxuICAzNjogMi4wMjk0LFxuICAzNzogMi4wMjczLFxuICAzODogMi4wMjUyLFxuICAzOTogMi4wMjMxLFxuICA0MDogMi4wMjEsXG4gIDQxOiAyLjAxOTgsXG4gIDQyOiAyLjAxODYsXG4gIDQzOiAyLjAxNzQsXG4gIDQ0OiAyLjAxNjIsXG4gIDQ1OiAyLjAxNSxcbiAgNDY6IDIuMDEzOCxcbiAgNDc6IDIuMDEyNixcbiAgNDg6IDIuMDExNCxcbiAgNDk6IDIuMDEwMixcbiAgNTA6IDIuMDA5LFxuICA1MTogMi4wMDgxLFxuICA1MjogMi4wMDcyLFxuICA1MzogMi4wMDYzLFxuICA1NDogMi4wMDU0LFxuICA1NTogMi4wMDQ1LFxuICA1NjogMi4wMDM2LFxuICA1NzogMi4wMDI3LFxuICA1ODogMi4wMDE4LFxuICA1OTogMi4wMDA5LFxuICA2MDogMixcbiAgNjE6IDEuOTk5NSxcbiAgNjI6IDEuOTk5LFxuICA2MzogMS45OTg1LFxuICA2NDogMS45OTgsXG4gIDY1OiAxLjk5NzUsXG4gIDY2OiAxLjk5NyxcbiAgNjc6IDEuOTk2NSxcbiAgNjg6IDEuOTk2LFxuICA2OTogMS45OTU1LFxuICA3MDogMS45OTUsXG4gIDcxOiAxLjk5NDUsXG4gIDcyOiAxLjk5NCxcbiAgNzM6IDEuOTkzNSxcbiAgNzQ6IDEuOTkzLFxuICA3NTogMS45OTI1LFxuICA3NjogMS45OTIsXG4gIDc3OiAxLjk5MTUsXG4gIDc4OiAxLjk5MSxcbiAgNzk6IDEuOTkwNSxcbiAgODA6IDEuOTksXG4gIDgxOiAxLjk4OTcsXG4gIDgyOiAxLjk4OTQsXG4gIDgzOiAxLjk4OTEsXG4gIDg0OiAxLjk4ODgsXG4gIDg1OiAxLjk4ODUsXG4gIDg2OiAxLjk4ODIsXG4gIDg3OiAxLjk4NzksXG4gIDg4OiAxLjk4NzYsXG4gIDg5OiAxLjk4NzMsXG4gIDkwOiAxLjk4NyxcbiAgOTE6IDEuOTg2NyxcbiAgOTI6IDEuOTg2NCxcbiAgOTM6IDEuOTg2MSxcbiAgOTQ6IDEuOTg1OCxcbiAgOTU6IDEuOTg1NSxcbiAgOTY6IDEuOTg1MixcbiAgOTc6IDEuOTg0OSxcbiAgOTg6IDEuOTg0NixcbiAgOTk6IDEuOTg0MyxcbiAgMTAwOiAxLjk4NCxcbiAgMTAxOiAxLjk4MzgsXG4gIDEwMjogMS45ODM2LFxuICAxMDM6IDEuOTgzNCxcbiAgMTA0OiAxLjk4MzIsXG4gIDEwNTogMS45ODMsXG4gIDEwNjogMS45ODI4LFxuICAxMDc6IDEuOTgyNixcbiAgMTA4OiAxLjk4MjQsXG4gIDEwOTogMS45ODIyLFxuICAxMTA6IDEuOTgyLFxuICAxMTE6IDEuOTgxOCxcbiAgMTEyOiAxLjk4MTYsXG4gIDExMzogMS45ODE0LFxuICAxMTQ6IDEuOTgxMixcbiAgMTE1OiAxLjk4MTksXG4gIDExNjogMS45ODA4LFxuICAxMTc6IDEuOTgwNixcbiAgMTE4OiAxLjk4MDQsXG4gIDExOTogMS45ODAyLFxuICAxMjA6IDEuOTgsXG4gIGluZmluaXR5OiAxLjk2XG59LCBOID0gRztcblxuLy8gc3JjL3V0aWxzLnRzXG52YXIgSiA9IChzKSA9PiBzIC8gMWU2LCBVID0gKCkgPT4gSihOdW1iZXIocHJvY2Vzcy5ocnRpbWUuYmlnaW50KCkpKSwgQiA9ICgpID0+IHBlcmZvcm1hbmNlLm5vdygpO1xuZnVuY3Rpb24gVyhzKSB7XG4gIHJldHVybiBzICE9PSBudWxsICYmIHR5cGVvZiBzID09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHMudGhlbiA9PSBcImZ1bmN0aW9uXCI7XG59XG52YXIgUyA9IChzLCBuKSA9PiBzLnJlZHVjZSgoZSwgcikgPT4gZSArIChyIC0gbikgKiogMiwgMCkgLyAocy5sZW5ndGggLSAxKSB8fCAwLCBYID0gKGFzeW5jICgpID0+IHtcbn0pLmNvbnN0cnVjdG9yLCBaID0gKHMpID0+IHMuY29uc3RydWN0b3IgPT09IFgsIHogPSBhc3luYyAocykgPT4ge1xuICBpZiAoWihzLmZuKSlcbiAgICByZXR1cm4gITA7XG4gIHRyeSB7XG4gICAgaWYgKHMub3B0cy5iZWZvcmVFYWNoICE9IG51bGwpXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzLm9wdHMuYmVmb3JlRWFjaC5jYWxsKHMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgIGxldCBuID0gcy5mbigpLCB0ID0gVyhuKTtcbiAgICBpZiAodClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG47XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgaWYgKHMub3B0cy5hZnRlckVhY2ggIT0gbnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHMub3B0cy5hZnRlckVhY2guY2FsbChzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICByZXR1cm4gdDtcbiAgfSBjYXRjaCAobikge1xuICAgIHJldHVybiAhMTtcbiAgfVxufTtcblxuLy8gc3JjL3Rhc2sudHNcbnZhciBiID0gY2xhc3MgZXh0ZW5kcyBFdmVudFRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKHQsIGUsIHIsIGkgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgLypcbiAgICAgKiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSB0YXNrXG4gICAgICogZnVuY3Rpb24gaGFzIGJlZW4gZXhlY3V0ZWRcbiAgICAgKi9cbiAgICB0aGlzLnJ1bnMgPSAwO1xuICAgIHRoaXMuYmVuY2ggPSB0LCB0aGlzLm5hbWUgPSBlLCB0aGlzLmZuID0gciwgdGhpcy5vcHRzID0gaTtcbiAgfVxuICBhc3luYyBsb29wKHQsIGUpIHtcbiAgICB2YXIgVDtcbiAgICBsZXQgciA9IHRoaXMuYmVuY2guY29uY3VycmVuY3kgPT09IFwidGFza1wiLCB7IHRocmVzaG9sZDogaSB9ID0gdGhpcy5iZW5jaCwgYyA9IDAsIGggPSBbXTtcbiAgICBpZiAodGhpcy5vcHRzLmJlZm9yZUFsbCAhPSBudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5vcHRzLmJlZm9yZUFsbC5jYWxsKHRoaXMpO1xuICAgICAgfSBjYXRjaCAodSkge1xuICAgICAgICByZXR1cm4geyBlcnJvcjogdSB9O1xuICAgICAgfVxuICAgIGxldCBwID0gYXdhaXQgeih0aGlzKSwgYSA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMub3B0cy5iZWZvcmVFYWNoICE9IG51bGwgJiYgYXdhaXQgdGhpcy5vcHRzLmJlZm9yZUVhY2guY2FsbCh0aGlzKTtcbiAgICAgIGxldCB1ID0gMDtcbiAgICAgIGlmIChwKSB7XG4gICAgICAgIGxldCB2ID0gdGhpcy5iZW5jaC5ub3coKTtcbiAgICAgICAgYXdhaXQgdGhpcy5mbi5jYWxsKHRoaXMpLCB1ID0gdGhpcy5iZW5jaC5ub3coKSAtIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgdiA9IHRoaXMuYmVuY2gubm93KCk7XG4gICAgICAgIHRoaXMuZm4uY2FsbCh0aGlzKSwgdSA9IHRoaXMuYmVuY2gubm93KCkgLSB2O1xuICAgICAgfVxuICAgICAgaC5wdXNoKHUpLCBjICs9IHUsIHRoaXMub3B0cy5hZnRlckVhY2ggIT0gbnVsbCAmJiBhd2FpdCB0aGlzLm9wdHMuYWZ0ZXJFYWNoLmNhbGwodGhpcyk7XG4gICAgfSwgbCA9IHkoaSk7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB1ID0gW107XG4gICAgICBmb3IgKDsgKGMgPCB0IHx8IGgubGVuZ3RoICsgbC5hY3RpdmVDb3VudCArIGwucGVuZGluZ0NvdW50IDwgZSkgJiYgISgoVCA9IHRoaXMuYmVuY2guc2lnbmFsKSAhPSBudWxsICYmIFQuYWJvcnRlZCk7IClcbiAgICAgICAgciA/IHUucHVzaChsKGEpKSA6IGF3YWl0IGEoKTtcbiAgICAgIHUubGVuZ3RoICYmIGF3YWl0IFByb21pc2UuYWxsKHUpO1xuICAgIH0gY2F0Y2ggKHUpIHtcbiAgICAgIHJldHVybiB7IGVycm9yOiB1IH07XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdHMuYWZ0ZXJBbGwgIT0gbnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0cy5hZnRlckFsbC5jYWxsKHRoaXMpO1xuICAgICAgfSBjYXRjaCAodSkge1xuICAgICAgICByZXR1cm4geyBlcnJvcjogdSB9O1xuICAgICAgfVxuICAgIHJldHVybiB7IHNhbXBsZXM6IGggfTtcbiAgfVxuICAvKipcbiAgICogcnVuIHRoZSBjdXJyZW50IHRhc2sgYW5kIHdyaXRlIHRoZSByZXN1bHRzIGluIGBUYXNrLnJlc3VsdGAgb2JqZWN0XG4gICAqL1xuICBhc3luYyBydW4oKSB7XG4gICAgdmFyIHIsIGk7XG4gICAgaWYgKChyID0gdGhpcy5yZXN1bHQpICE9IG51bGwgJiYgci5lcnJvcilcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwic3RhcnRcIiwgdGhpcykpLCBhd2FpdCB0aGlzLmJlbmNoLnNldHVwKHRoaXMsIFwicnVuXCIpO1xuICAgIGxldCB7IHNhbXBsZXM6IHQsIGVycm9yOiBlIH0gPSBhd2FpdCB0aGlzLmxvb3AodGhpcy5iZW5jaC50aW1lLCB0aGlzLmJlbmNoLml0ZXJhdGlvbnMpO1xuICAgIGlmICh0aGlzLmJlbmNoLnRlYXJkb3duKHRoaXMsIFwicnVuXCIpLCB0KSB7XG4gICAgICBsZXQgYyA9IHQucmVkdWNlKChMLCBBKSA9PiBMICsgQSwgMCk7XG4gICAgICB0aGlzLnJ1bnMgPSB0Lmxlbmd0aCwgdC5zb3J0KChMLCBBKSA9PiBMIC0gQSk7XG4gICAgICBsZXQgaCA9IGMgLyB0aGlzLnJ1bnMsIHAgPSAxZTMgLyBoLCBhID0gdC5sZW5ndGgsIGwgPSBhIC0gMSwgVCA9IHRbMF0sIHUgPSB0W2xdLCB2ID0gYyAvIHQubGVuZ3RoIHx8IDAsIFAgPSBTKHQsIHYpLCBSID0gTWF0aC5zcXJ0KFApLCBJID0gUiAvIE1hdGguc3FydChhKSwgXyA9IE5bU3RyaW5nKE1hdGgucm91bmQobCkgfHwgMSldIHx8IE4uaW5maW5pdHksIEsgPSBJICogXywgaiA9IEsgLyB2ICogMTAwLCBIID0gdFtNYXRoLmNlaWwoYSAqIDAuNzUpIC0gMV0sIFYgPSB0W01hdGguY2VpbChhICogMC45OSkgLSAxXSwgUSA9IHRbTWF0aC5jZWlsKGEgKiAwLjk5NSkgLSAxXSwgWSA9IHRbTWF0aC5jZWlsKGEgKiAwLjk5OSkgLSAxXTtcbiAgICAgIGlmICgoaSA9IHRoaXMuYmVuY2guc2lnbmFsKSAhPSBudWxsICYmIGkuYWJvcnRlZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB0aGlzLnNldFJlc3VsdCh7XG4gICAgICAgIHRvdGFsVGltZTogYyxcbiAgICAgICAgbWluOiBULFxuICAgICAgICBtYXg6IHUsXG4gICAgICAgIGh6OiBwLFxuICAgICAgICBwZXJpb2Q6IGgsXG4gICAgICAgIHNhbXBsZXM6IHQsXG4gICAgICAgIG1lYW46IHYsXG4gICAgICAgIHZhcmlhbmNlOiBQLFxuICAgICAgICBzZDogUixcbiAgICAgICAgc2VtOiBJLFxuICAgICAgICBkZjogbCxcbiAgICAgICAgY3JpdGljYWw6IF8sXG4gICAgICAgIG1vZTogSyxcbiAgICAgICAgcm1lOiBqLFxuICAgICAgICBwNzU6IEgsXG4gICAgICAgIHA5OTogVixcbiAgICAgICAgcDk5NTogUSxcbiAgICAgICAgcDk5OTogWVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChlKSB7XG4gICAgICBpZiAodGhpcy5zZXRSZXN1bHQoeyBlcnJvcjogZSB9KSwgdGhpcy5iZW5jaC50aHJvd3MpXG4gICAgICAgIHRocm93IGU7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImVycm9yXCIsIHRoaXMpKSwgdGhpcy5iZW5jaC5kaXNwYXRjaEV2ZW50KG8oXCJlcnJvclwiLCB0aGlzKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImN5Y2xlXCIsIHRoaXMpKSwgdGhpcy5iZW5jaC5kaXNwYXRjaEV2ZW50KG8oXCJjeWNsZVwiLCB0aGlzKSksIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwiY29tcGxldGVcIiwgdGhpcykpLCB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB3YXJtdXAgdGhlIGN1cnJlbnQgdGFza1xuICAgKi9cbiAgYXN5bmMgd2FybXVwKCkge1xuICAgIHZhciBlO1xuICAgIGlmICgoZSA9IHRoaXMucmVzdWx0KSAhPSBudWxsICYmIGUuZXJyb3IpXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJ3YXJtdXBcIiwgdGhpcykpLCBhd2FpdCB0aGlzLmJlbmNoLnNldHVwKHRoaXMsIFwid2FybXVwXCIpO1xuICAgIGxldCB7IGVycm9yOiB0IH0gPSBhd2FpdCB0aGlzLmxvb3AodGhpcy5iZW5jaC53YXJtdXBUaW1lLCB0aGlzLmJlbmNoLndhcm11cEl0ZXJhdGlvbnMpO1xuICAgIGlmICh0aGlzLmJlbmNoLnRlYXJkb3duKHRoaXMsIFwid2FybXVwXCIpLCB0ICYmICh0aGlzLnNldFJlc3VsdCh7IGVycm9yOiB0IH0pLCB0aGlzLmJlbmNoLnRocm93cykpXG4gICAgICB0aHJvdyB0O1xuICB9XG4gIGFkZEV2ZW50TGlzdGVuZXIodCwgZSwgcikge1xuICAgIHN1cGVyLmFkZEV2ZW50TGlzdGVuZXIodCwgZSwgcik7XG4gIH1cbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCBlLCByKSB7XG4gICAgc3VwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCBlLCByKTtcbiAgfVxuICAvKipcbiAgICogY2hhbmdlIHRoZSByZXN1bHQgb2JqZWN0IHZhbHVlc1xuICAgKi9cbiAgc2V0UmVzdWx0KHQpIHtcbiAgICB0aGlzLnJlc3VsdCA9IHsgLi4udGhpcy5yZXN1bHQsIC4uLnQgfSwgT2JqZWN0LmZyZWV6ZSh0aGlzLnJlc3VsdCk7XG4gIH1cbiAgLyoqXG4gICAqIHJlc2V0IHRoZSB0YXNrIHRvIG1ha2UgdGhlIGBUYXNrLnJ1bnNgIGEgemVyby12YWx1ZSBhbmQgcmVtb3ZlIHRoZSBgVGFzay5yZXN1bHRgXG4gICAqIG9iamVjdFxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJyZXNldFwiLCB0aGlzKSksIHRoaXMucnVucyA9IDAsIHRoaXMucmVzdWx0ID0gdm9pZCAwO1xuICB9XG59O1xuXG4vLyBzcmMvYmVuY2gudHNcbnZhciB4ID0gY2xhc3MgZXh0ZW5kcyBFdmVudFRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKHQgPSB7fSkge1xuICAgIHZhciBlLCByLCBpLCBjLCBoLCBwLCBhLCBsO1xuICAgIHN1cGVyKCk7XG4gICAgLypcbiAgICAgKiBAcHJpdmF0ZSB0aGUgdGFzayBtYXBcbiAgICAgKi9cbiAgICB0aGlzLl90YXNrcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5fdG9kb3MgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIC8qKlxuICAgICogRXhlY3V0ZXMgdGFza3MgY29uY3VycmVudGx5IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgY29uY3VycmVuY3kgbW9kZS5cbiAgICAqXG4gICAgKiAtIFdoZW4gYG1vZGVgIGlzIHNldCB0byBgbnVsbGAgKGRlZmF1bHQpLCBjb25jdXJyZW5jeSBpcyBkaXNhYmxlZC5cbiAgICAqIC0gV2hlbiBgbW9kZWAgaXMgc2V0IHRvICd0YXNrJywgZWFjaCB0YXNrJ3MgaXRlcmF0aW9ucyAoY2FsbHMgb2YgYSB0YXNrIGZ1bmN0aW9uKSBydW4gY29uY3VycmVudGx5LlxuICAgICogLSBXaGVuIGBtb2RlYCBpcyBzZXQgdG8gJ2JlbmNoJywgZGlmZmVyZW50IHRhc2tzIHdpdGhpbiB0aGUgYmVuY2ggcnVuIGNvbmN1cnJlbnRseS5cbiAgICAqL1xuICAgIHRoaXMuY29uY3VycmVuY3kgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHRhc2tzIHRvIHJ1bi4gRGVmYXVsdHMgdG8gSW5maW5pdHkuXG4gICAgICovXG4gICAgdGhpcy50aHJlc2hvbGQgPSAxIC8gMDtcbiAgICB0aGlzLndhcm11cFRpbWUgPSAxMDA7XG4gICAgdGhpcy53YXJtdXBJdGVyYXRpb25zID0gNTtcbiAgICB0aGlzLnRpbWUgPSA1MDA7XG4gICAgdGhpcy5pdGVyYXRpb25zID0gMTA7XG4gICAgdGhpcy5ub3cgPSBCO1xuICAgIHRoaXMubm93ID0gKGUgPSB0Lm5vdykgIT0gbnVsbCA/IGUgOiB0aGlzLm5vdywgdGhpcy53YXJtdXBUaW1lID0gKHIgPSB0Lndhcm11cFRpbWUpICE9IG51bGwgPyByIDogdGhpcy53YXJtdXBUaW1lLCB0aGlzLndhcm11cEl0ZXJhdGlvbnMgPSAoaSA9IHQud2FybXVwSXRlcmF0aW9ucykgIT0gbnVsbCA/IGkgOiB0aGlzLndhcm11cEl0ZXJhdGlvbnMsIHRoaXMudGltZSA9IChjID0gdC50aW1lKSAhPSBudWxsID8gYyA6IHRoaXMudGltZSwgdGhpcy5pdGVyYXRpb25zID0gKGggPSB0Lml0ZXJhdGlvbnMpICE9IG51bGwgPyBoIDogdGhpcy5pdGVyYXRpb25zLCB0aGlzLnNpZ25hbCA9IHQuc2lnbmFsLCB0aGlzLnRocm93cyA9IChwID0gdC50aHJvd3MpICE9IG51bGwgPyBwIDogITEsIHRoaXMuc2V0dXAgPSAoYSA9IHQuc2V0dXApICE9IG51bGwgPyBhIDogKCkgPT4ge1xuICAgIH0sIHRoaXMudGVhcmRvd24gPSAobCA9IHQudGVhcmRvd24pICE9IG51bGwgPyBsIDogKCkgPT4ge1xuICAgIH0sIHRoaXMuc2lnbmFsICYmIHRoaXMuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBcImFib3J0XCIsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwiYWJvcnRcIikpO1xuICAgICAgfSxcbiAgICAgIHsgb25jZTogITAgfVxuICAgICk7XG4gIH1cbiAgcnVuVGFzayh0KSB7XG4gICAgdmFyIGU7XG4gICAgcmV0dXJuIChlID0gdGhpcy5zaWduYWwpICE9IG51bGwgJiYgZS5hYm9ydGVkID8gdCA6IHQucnVuKCk7XG4gIH1cbiAgLyoqXG4gICAqIHJ1biB0aGUgYWRkZWQgdGFza3MgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlXG4gICAqIHtAbGluayBhZGR9IG1ldGhvZC5cbiAgICogTm90ZTogVGhpcyBtZXRob2QgZG9lcyBub3QgZG8gYW55IHdhcm11cC4gQ2FsbCB7QGxpbmsgd2FybXVwfSBmb3IgdGhhdC5cbiAgICovXG4gIGFzeW5jIHJ1bigpIHtcbiAgICBpZiAodGhpcy5jb25jdXJyZW5jeSA9PT0gXCJiZW5jaFwiKVxuICAgICAgcmV0dXJuIHRoaXMucnVuQ29uY3VycmVudGx5KHRoaXMudGhyZXNob2xkLCB0aGlzLmNvbmN1cnJlbmN5KTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcInN0YXJ0XCIpKTtcbiAgICBsZXQgdCA9IFtdO1xuICAgIGZvciAobGV0IGUgb2YgWy4uLnRoaXMuX3Rhc2tzLnZhbHVlcygpXSlcbiAgICAgIHQucHVzaChhd2FpdCB0aGlzLnJ1blRhc2soZSkpO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImNvbXBsZXRlXCIpKSwgdDtcbiAgfVxuICAvKipcbiAgICogU2VlIEJlbmNoLntAbGluayBjb25jdXJyZW5jeX1cbiAgICovXG4gIGFzeW5jIHJ1bkNvbmN1cnJlbnRseSh0ID0gMSAvIDAsIGUgPSBcImJlbmNoXCIpIHtcbiAgICBpZiAodGhpcy50aHJlc2hvbGQgPSB0LCB0aGlzLmNvbmN1cnJlbmN5ID0gZSwgZSA9PT0gXCJ0YXNrXCIpXG4gICAgICByZXR1cm4gdGhpcy5ydW4oKTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcInN0YXJ0XCIpKTtcbiAgICBsZXQgciA9IHkodCksIGkgPSBbXTtcbiAgICBmb3IgKGxldCBoIG9mIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV0pXG4gICAgICBpLnB1c2gocigoKSA9PiB0aGlzLnJ1blRhc2soaCkpKTtcbiAgICBsZXQgYyA9IGF3YWl0IFByb21pc2UuYWxsKGkpO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobyhcImNvbXBsZXRlXCIpKSwgYztcbiAgfVxuICAvKipcbiAgICogd2FybXVwIHRoZSBiZW5jaG1hcmsgdGFza3MuXG4gICAqIFRoaXMgaXMgbm90IHJ1biBieSBkZWZhdWx0IGJ5IHRoZSB7QGxpbmsgcnVufSBtZXRob2QuXG4gICAqL1xuICBhc3luYyB3YXJtdXAoKSB7XG4gICAgaWYgKHRoaXMuY29uY3VycmVuY3kgPT09IFwiYmVuY2hcIikge1xuICAgICAgYXdhaXQgdGhpcy53YXJtdXBDb25jdXJyZW50bHkodGhpcy50aHJlc2hvbGQsIHRoaXMuY29uY3VycmVuY3kpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcIndhcm11cFwiKSk7XG4gICAgZm9yIChsZXQgWywgdF0gb2YgdGhpcy5fdGFza3MpXG4gICAgICBhd2FpdCB0Lndhcm11cCgpO1xuICB9XG4gIC8qKlxuICAgKiB3YXJtdXAgdGhlIGJlbmNobWFyayB0YXNrcyBjb25jdXJyZW50bHkuXG4gICAqIFRoaXMgaXMgbm90IHJ1biBieSBkZWZhdWx0IGJ5IHRoZSB7QGxpbmsgcnVuQ29uY3VycmVudGx5fSBtZXRob2QuXG4gICAqL1xuICBhc3luYyB3YXJtdXBDb25jdXJyZW50bHkodCA9IDEgLyAwLCBlID0gXCJiZW5jaFwiKSB7XG4gICAgaWYgKHRoaXMudGhyZXNob2xkID0gdCwgdGhpcy5jb25jdXJyZW5jeSA9IGUsIGUgPT09IFwidGFza1wiKSB7XG4gICAgICBhd2FpdCB0aGlzLndhcm11cCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobyhcIndhcm11cFwiKSk7XG4gICAgbGV0IHIgPSB5KHQpLCBpID0gW107XG4gICAgZm9yIChsZXQgWywgY10gb2YgdGhpcy5fdGFza3MpXG4gICAgICBpLnB1c2gocigoKSA9PiBjLndhcm11cCgpKSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaSk7XG4gIH1cbiAgLyoqXG4gICAqIHJlc2V0IGVhY2ggdGFzayBhbmQgcmVtb3ZlIGl0cyByZXN1bHRcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwicmVzZXRcIikpLCB0aGlzLl90YXNrcy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICB0LnJlc2V0KCk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIGFkZCBhIGJlbmNobWFyayB0YXNrIHRvIHRoZSB0YXNrIG1hcFxuICAgKi9cbiAgYWRkKHQsIGUsIHIgPSB7fSkge1xuICAgIGxldCBpID0gbmV3IGIodGhpcywgdCwgZSwgcik7XG4gICAgcmV0dXJuIHRoaXMuX3Rhc2tzLnNldCh0LCBpKSwgdGhpcy5kaXNwYXRjaEV2ZW50KG8oXCJhZGRcIiwgaSkpLCB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBhZGQgYSBiZW5jaG1hcmsgdG9kbyB0byB0aGUgdG9kbyBtYXBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgdG9kbyh0LCBlID0gKCkgPT4ge1xuICB9LCByID0ge30pIHtcbiAgICBsZXQgaSA9IG5ldyBiKHRoaXMsIHQsIGUsIHIpO1xuICAgIHJldHVybiB0aGlzLl90b2Rvcy5zZXQodCwgaSksIHRoaXMuZGlzcGF0Y2hFdmVudChvKFwidG9kb1wiLCBpKSksIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIHJlbW92ZSBhIGJlbmNobWFyayB0YXNrIGZyb20gdGhlIHRhc2sgbWFwXG4gICAqL1xuICByZW1vdmUodCkge1xuICAgIGxldCBlID0gdGhpcy5nZXRUYXNrKHQpO1xuICAgIHJldHVybiBlICYmICh0aGlzLmRpc3BhdGNoRXZlbnQobyhcInJlbW92ZVwiLCBlKSksIHRoaXMuX3Rhc2tzLmRlbGV0ZSh0KSksIHRoaXM7XG4gIH1cbiAgYWRkRXZlbnRMaXN0ZW5lcih0LCBlLCByKSB7XG4gICAgc3VwZXIuYWRkRXZlbnRMaXN0ZW5lcih0LCBlLCByKTtcbiAgfVxuICByZW1vdmVFdmVudExpc3RlbmVyKHQsIGUsIHIpIHtcbiAgICBzdXBlci5yZW1vdmVFdmVudExpc3RlbmVyKHQsIGUsIHIpO1xuICB9XG4gIC8qKlxuICAgKiB0YWJsZSBvZiB0aGUgdGFza3MgcmVzdWx0c1xuICAgKi9cbiAgdGFibGUodCkge1xuICAgIHJldHVybiB0aGlzLnRhc2tzLm1hcCgoZSkgPT4ge1xuICAgICAgaWYgKGUucmVzdWx0KSB7XG4gICAgICAgIGlmIChlLnJlc3VsdC5lcnJvcilcbiAgICAgICAgICB0aHJvdyBlLnJlc3VsdC5lcnJvcjtcbiAgICAgICAgcmV0dXJuICh0ID09IG51bGwgPyB2b2lkIDAgOiB0KGUpKSB8fCB7XG4gICAgICAgICAgXCJUYXNrIE5hbWVcIjogZS5uYW1lLFxuICAgICAgICAgIFwib3BzL3NlY1wiOiBlLnJlc3VsdC5lcnJvciA/IFwiTmFOXCIgOiBwYXJzZUludChlLnJlc3VsdC5oei50b1N0cmluZygpLCAxMCkudG9Mb2NhbGVTdHJpbmcoKSxcbiAgICAgICAgICBcIkF2ZXJhZ2UgVGltZSAobnMpXCI6IGUucmVzdWx0LmVycm9yID8gXCJOYU5cIiA6IGUucmVzdWx0Lm1lYW4gKiAxZTMgKiAxZTMsXG4gICAgICAgICAgTWFyZ2luOiBlLnJlc3VsdC5lcnJvciA/IFwiTmFOXCIgOiBgXFx4QjEke2UucmVzdWx0LnJtZS50b0ZpeGVkKDIpfSVgLFxuICAgICAgICAgIFNhbXBsZXM6IGUucmVzdWx0LmVycm9yID8gXCJOYU5cIiA6IGUucmVzdWx0LnNhbXBsZXMubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogKGdldHRlcikgdGFza3MgcmVzdWx0cyBhcyBhbiBhcnJheVxuICAgKi9cbiAgZ2V0IHJlc3VsdHMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV0ubWFwKCh0KSA9PiB0LnJlc3VsdCk7XG4gIH1cbiAgLyoqXG4gICAqIChnZXR0ZXIpIHRhc2tzIGFzIGFuIGFycmF5XG4gICAqL1xuICBnZXQgdGFza3MoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl90YXNrcy52YWx1ZXMoKV07XG4gIH1cbiAgZ2V0IHRvZG9zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fdG9kb3MudmFsdWVzKCldO1xuICB9XG4gIC8qKlxuICAgKiBnZXQgYSB0YXNrIGJhc2VkIG9uIHRoZSB0YXNrIG5hbWVcbiAgICovXG4gIGdldFRhc2sodCkge1xuICAgIHJldHVybiB0aGlzLl90YXNrcy5nZXQodCk7XG4gIH1cbn07XG5leHBvcnQge1xuICB4IGFzIEJlbmNoLFxuICBiIGFzIFRhc2ssXG4gIFUgYXMgaHJ0aW1lTm93LFxuICBCIGFzIG5vd1xufTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSSxJQUFJLE9BQU87QUFDZixJQUFJLEtBQUssTUFBTTtDQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ25CO0FBQ0EsSUFBSSxLQUFLLEdBQUcsR0FBRyxNQUFNLEtBQUssSUFBSSxFQUFFLEdBQUcsR0FBRztDQUFFLFlBQVksQ0FBQztDQUFHLGNBQWMsQ0FBQztDQUFHLFVBQVUsQ0FBQztDQUFHLE9BQU87QUFBRSxDQUFDLElBQUksRUFBRSxLQUFLO0FBQzdHLElBQUksS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxLQUFLLFdBQVcsSUFBSSxLQUFLLEdBQUcsQ0FBQztBQUFHLElBQUEsS0FBSyxHQUFHLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO0FBQzdHLElBQUksS0FBSyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyx5QkFBeUIsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFBSSxJQUFBLEtBQUssR0FBRyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLG1EQUFtRCxJQUFJLGFBQWEsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUM7QUFBRyxJQUFBLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyx3QkFBd0IsR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUc7QUFDalQsSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLE9BQU87Q0FDdkIsSUFBSSxFQUFFLEdBQUc7RUFDUCxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Q0FDZDtDQUNB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
|
package/bundle/dist/node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.js
CHANGED
|
@@ -55,6 +55,14 @@ function i(e) {
|
|
|
55
55
|
}
|
|
56
56
|
i.open = "";
|
|
57
57
|
i.close = "";
|
|
58
|
+
function p() {
|
|
59
|
+
let e = {
|
|
60
|
+
isColorSupported: !1,
|
|
61
|
+
reset: i
|
|
62
|
+
};
|
|
63
|
+
for (let r in b) e[r] = i;
|
|
64
|
+
return e;
|
|
65
|
+
}
|
|
58
66
|
function B() {
|
|
59
67
|
let e = typeof process != "undefined" ? process : void 0, r = (e == null ? void 0 : e.env) || {}, a = r.FORCE_TTY !== "false", l = (e == null ? void 0 : e.argv) || [];
|
|
60
68
|
return !("NO_COLOR" in r || l.includes("--no-color")) && ("FORCE_COLOR" in r || l.includes("--color") || (e == null ? void 0 : e.platform) === "win32" || a && r.TERM !== "dumb" || "CI" in r) || typeof window != "undefined" && !!window.chrome;
|
|
@@ -79,8 +87,15 @@ function C({ force: e } = {}) {
|
|
|
79
87
|
}
|
|
80
88
|
return c;
|
|
81
89
|
}
|
|
82
|
-
var
|
|
90
|
+
var d = C();
|
|
91
|
+
function m() {
|
|
92
|
+
Object.assign(d, p());
|
|
93
|
+
}
|
|
94
|
+
function w() {
|
|
95
|
+
Object.assign(d, C({ force: !0 }));
|
|
96
|
+
}
|
|
97
|
+
var y = d;
|
|
83
98
|
//#endregion
|
|
84
|
-
export { y };
|
|
99
|
+
export { C as createColors, y as default, m as disableDefaultColors, w as enabledDefaultColors, p as getDefaultColors, B as isSupported };
|
|
85
100
|
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3RpbnlyYWluYm93QDMuMS4wL25vZGVfbW9kdWxlcy90aW55cmFpbmJvdy9kaXN0L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9pbmRleC50c1xudmFyIGIgPSB7XG4gIHJlc2V0OiBbMCwgMF0sXG4gIGJvbGQ6IFsxLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsxbVwiXSxcbiAgZGltOiBbMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIl0sXG4gIGl0YWxpYzogWzMsIDIzXSxcbiAgdW5kZXJsaW5lOiBbNCwgMjRdLFxuICBpbnZlcnNlOiBbNywgMjddLFxuICBoaWRkZW46IFs4LCAyOF0sXG4gIHN0cmlrZXRocm91Z2g6IFs5LCAyOV0sXG4gIGJsYWNrOiBbMzAsIDM5XSxcbiAgcmVkOiBbMzEsIDM5XSxcbiAgZ3JlZW46IFszMiwgMzldLFxuICB5ZWxsb3c6IFszMywgMzldLFxuICBibHVlOiBbMzQsIDM5XSxcbiAgbWFnZW50YTogWzM1LCAzOV0sXG4gIGN5YW46IFszNiwgMzldLFxuICB3aGl0ZTogWzM3LCAzOV0sXG4gIGdyYXk6IFs5MCwgMzldLFxuICBiZ0JsYWNrOiBbNDAsIDQ5XSxcbiAgYmdSZWQ6IFs0MSwgNDldLFxuICBiZ0dyZWVuOiBbNDIsIDQ5XSxcbiAgYmdZZWxsb3c6IFs0MywgNDldLFxuICBiZ0JsdWU6IFs0NCwgNDldLFxuICBiZ01hZ2VudGE6IFs0NSwgNDldLFxuICBiZ0N5YW46IFs0NiwgNDldLFxuICBiZ1doaXRlOiBbNDcsIDQ5XSxcbiAgYmxhY2tCcmlnaHQ6IFs5MCwgMzldLFxuICByZWRCcmlnaHQ6IFs5MSwgMzldLFxuICBncmVlbkJyaWdodDogWzkyLCAzOV0sXG4gIHllbGxvd0JyaWdodDogWzkzLCAzOV0sXG4gIGJsdWVCcmlnaHQ6IFs5NCwgMzldLFxuICBtYWdlbnRhQnJpZ2h0OiBbOTUsIDM5XSxcbiAgY3lhbkJyaWdodDogWzk2LCAzOV0sXG4gIHdoaXRlQnJpZ2h0OiBbOTcsIDM5XSxcbiAgYmdCbGFja0JyaWdodDogWzEwMCwgNDldLFxuICBiZ1JlZEJyaWdodDogWzEwMSwgNDldLFxuICBiZ0dyZWVuQnJpZ2h0OiBbMTAyLCA0OV0sXG4gIGJnWWVsbG93QnJpZ2h0OiBbMTAzLCA0OV0sXG4gIGJnQmx1ZUJyaWdodDogWzEwNCwgNDldLFxuICBiZ01hZ2VudGFCcmlnaHQ6IFsxMDUsIDQ5XSxcbiAgYmdDeWFuQnJpZ2h0OiBbMTA2LCA0OV0sXG4gIGJnV2hpdGVCcmlnaHQ6IFsxMDcsIDQ5XVxufTtcbmZ1bmN0aW9uIGkoZSkge1xuICByZXR1cm4gU3RyaW5nKGUpO1xufVxuaS5vcGVuID0gXCJcIjtcbmkuY2xvc2UgPSBcIlwiO1xuZnVuY3Rpb24gcCgpIHtcbiAgbGV0IGUgPSB7XG4gICAgaXNDb2xvclN1cHBvcnRlZDogITEsXG4gICAgcmVzZXQ6IGlcbiAgfTtcbiAgZm9yIChsZXQgciBpbiBiKVxuICAgIGVbcl0gPSBpO1xuICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIEIoKSB7XG4gIGxldCBlID0gdHlwZW9mIHByb2Nlc3MgIT0gXCJ1bmRlZmluZWRcIiA/
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3RpbnlyYWluYm93QDMuMS4wL25vZGVfbW9kdWxlcy90aW55cmFpbmJvdy9kaXN0L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9pbmRleC50c1xudmFyIGIgPSB7XG4gIHJlc2V0OiBbMCwgMF0sXG4gIGJvbGQ6IFsxLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsxbVwiXSxcbiAgZGltOiBbMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIl0sXG4gIGl0YWxpYzogWzMsIDIzXSxcbiAgdW5kZXJsaW5lOiBbNCwgMjRdLFxuICBpbnZlcnNlOiBbNywgMjddLFxuICBoaWRkZW46IFs4LCAyOF0sXG4gIHN0cmlrZXRocm91Z2g6IFs5LCAyOV0sXG4gIGJsYWNrOiBbMzAsIDM5XSxcbiAgcmVkOiBbMzEsIDM5XSxcbiAgZ3JlZW46IFszMiwgMzldLFxuICB5ZWxsb3c6IFszMywgMzldLFxuICBibHVlOiBbMzQsIDM5XSxcbiAgbWFnZW50YTogWzM1LCAzOV0sXG4gIGN5YW46IFszNiwgMzldLFxuICB3aGl0ZTogWzM3LCAzOV0sXG4gIGdyYXk6IFs5MCwgMzldLFxuICBiZ0JsYWNrOiBbNDAsIDQ5XSxcbiAgYmdSZWQ6IFs0MSwgNDldLFxuICBiZ0dyZWVuOiBbNDIsIDQ5XSxcbiAgYmdZZWxsb3c6IFs0MywgNDldLFxuICBiZ0JsdWU6IFs0NCwgNDldLFxuICBiZ01hZ2VudGE6IFs0NSwgNDldLFxuICBiZ0N5YW46IFs0NiwgNDldLFxuICBiZ1doaXRlOiBbNDcsIDQ5XSxcbiAgYmxhY2tCcmlnaHQ6IFs5MCwgMzldLFxuICByZWRCcmlnaHQ6IFs5MSwgMzldLFxuICBncmVlbkJyaWdodDogWzkyLCAzOV0sXG4gIHllbGxvd0JyaWdodDogWzkzLCAzOV0sXG4gIGJsdWVCcmlnaHQ6IFs5NCwgMzldLFxuICBtYWdlbnRhQnJpZ2h0OiBbOTUsIDM5XSxcbiAgY3lhbkJyaWdodDogWzk2LCAzOV0sXG4gIHdoaXRlQnJpZ2h0OiBbOTcsIDM5XSxcbiAgYmdCbGFja0JyaWdodDogWzEwMCwgNDldLFxuICBiZ1JlZEJyaWdodDogWzEwMSwgNDldLFxuICBiZ0dyZWVuQnJpZ2h0OiBbMTAyLCA0OV0sXG4gIGJnWWVsbG93QnJpZ2h0OiBbMTAzLCA0OV0sXG4gIGJnQmx1ZUJyaWdodDogWzEwNCwgNDldLFxuICBiZ01hZ2VudGFCcmlnaHQ6IFsxMDUsIDQ5XSxcbiAgYmdDeWFuQnJpZ2h0OiBbMTA2LCA0OV0sXG4gIGJnV2hpdGVCcmlnaHQ6IFsxMDcsIDQ5XVxufTtcbmZ1bmN0aW9uIGkoZSkge1xuICByZXR1cm4gU3RyaW5nKGUpO1xufVxuaS5vcGVuID0gXCJcIjtcbmkuY2xvc2UgPSBcIlwiO1xuZnVuY3Rpb24gcCgpIHtcbiAgbGV0IGUgPSB7XG4gICAgaXNDb2xvclN1cHBvcnRlZDogITEsXG4gICAgcmVzZXQ6IGlcbiAgfTtcbiAgZm9yIChsZXQgciBpbiBiKVxuICAgIGVbcl0gPSBpO1xuICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIEIoKSB7XG4gIGxldCBlID0gdHlwZW9mIHByb2Nlc3MgIT0gXCJ1bmRlZmluZWRcIiA/IHByb2Nlc3MgOiB2b2lkIDAsIHIgPSAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5lbnYpIHx8IHt9LCBhID0gci5GT1JDRV9UVFkgIT09IFwiZmFsc2VcIiwgbCA9IChlID09IG51bGwgPyB2b2lkIDAgOiBlLmFyZ3YpIHx8IFtdO1xuICByZXR1cm4gIShcIk5PX0NPTE9SXCIgaW4gciB8fCBsLmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiYgKFwiRk9SQ0VfQ09MT1JcIiBpbiByIHx8IGwuaW5jbHVkZXMoXCItLWNvbG9yXCIpIHx8IChlID09IG51bGwgPyB2b2lkIDAgOiBlLnBsYXRmb3JtKSA9PT0gXCJ3aW4zMlwiIHx8IGEgJiYgci5URVJNICE9PSBcImR1bWJcIiB8fCBcIkNJXCIgaW4gcikgfHwgdHlwZW9mIHdpbmRvdyAhPSBcInVuZGVmaW5lZFwiICYmICEhd2luZG93LmNocm9tZTtcbn1cbmZ1bmN0aW9uIEMoeyBmb3JjZTogZSB9ID0ge30pIHtcbiAgbGV0IHIgPSBlIHx8IEIoKSwgYSA9ICh0LCBvLCB1LCBuKSA9PiB7XG4gICAgbGV0IGcgPSBcIlwiLCBzID0gMDtcbiAgICBkb1xuICAgICAgZyArPSB0LnN1YnN0cmluZyhzLCBuKSArIHUsIHMgPSBuICsgby5sZW5ndGgsIG4gPSB0LmluZGV4T2Yobywgcyk7XG4gICAgd2hpbGUgKH5uKTtcbiAgICByZXR1cm4gZyArIHQuc3Vic3RyaW5nKHMpO1xuICB9LCBsID0gKHQsIG8sIHUgPSB0KSA9PiB7XG4gICAgbGV0IG4gPSAoZykgPT4ge1xuICAgICAgbGV0IHMgPSBTdHJpbmcoZyksIGggPSBzLmluZGV4T2YobywgdC5sZW5ndGgpO1xuICAgICAgcmV0dXJuIH5oID8gdCArIGEocywgbywgdSwgaCkgKyBvIDogdCArIHMgKyBvO1xuICAgIH07XG4gICAgcmV0dXJuIG4ub3BlbiA9IHQsIG4uY2xvc2UgPSBvLCBuO1xuICB9LCBjID0ge1xuICAgIGlzQ29sb3JTdXBwb3J0ZWQ6IHJcbiAgfSwgZiA9ICh0KSA9PiBgXFx4MUJbJHt0fW1gO1xuICBmb3IgKGxldCB0IGluIGIpIHtcbiAgICBsZXQgbyA9IGJbdF07XG4gICAgY1t0XSA9IHIgPyBsKFxuICAgICAgZihvWzBdKSxcbiAgICAgIGYob1sxXSksXG4gICAgICBvWzJdXG4gICAgKSA6IGk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG52YXIgZCA9IEMoKTtcbmZ1bmN0aW9uIG0oKSB7XG4gIE9iamVjdC5hc3NpZ24oZCwgcCgpKTtcbn1cbmZ1bmN0aW9uIHcoKSB7XG4gIE9iamVjdC5hc3NpZ24oZCwgQyh7IGZvcmNlOiAhMCB9KSk7XG59XG52YXIgeSA9IGQ7XG5leHBvcnQge1xuICBDIGFzIGNyZWF0ZUNvbG9ycyxcbiAgeSBhcyBkZWZhdWx0LFxuICBtIGFzIGRpc2FibGVEZWZhdWx0Q29sb3JzLFxuICB3IGFzIGVuYWJsZWREZWZhdWx0Q29sb3JzLFxuICBwIGFzIGdldERlZmF1bHRDb2xvcnMsXG4gIEIgYXMgaXNTdXBwb3J0ZWRcbn07XG4iXSwieF9nb29nbGVfaWdub3JlTGlzdCI6WzBdLCJtYXBwaW5ncyI6IjtBQUNBLElBQUksSUFBSTtDQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUM7Q0FDWixNQUFNO0VBQUM7RUFBRztFQUFJO0NBQWlCO0NBQy9CLEtBQUs7RUFBQztFQUFHO0VBQUk7Q0FBaUI7Q0FDOUIsUUFBUSxDQUFDLEdBQUcsRUFBRTtDQUNkLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Q0FDakIsU0FBUyxDQUFDLEdBQUcsRUFBRTtDQUNmLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Q0FDZCxlQUFlLENBQUMsR0FBRyxFQUFFO0NBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Q0FDZCxLQUFLLENBQUMsSUFBSSxFQUFFO0NBQ1osT0FBTyxDQUFDLElBQUksRUFBRTtDQUNkLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Q0FDZixNQUFNLENBQUMsSUFBSSxFQUFFO0NBQ2IsU0FBUyxDQUFDLElBQUksRUFBRTtDQUNoQixNQUFNLENBQUMsSUFBSSxFQUFFO0NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRTtDQUNkLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Q0FDYixTQUFTLENBQUMsSUFBSSxFQUFFO0NBQ2hCLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Q0FDZCxTQUFTLENBQUMsSUFBSSxFQUFFO0NBQ2hCLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Q0FDakIsUUFBUSxDQUFDLElBQUksRUFBRTtDQUNmLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Q0FDbEIsUUFBUSxDQUFDLElBQUksRUFBRTtDQUNmLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Q0FDaEIsYUFBYSxDQUFDLElBQUksRUFBRTtDQUNwQixXQUFXLENBQUMsSUFBSSxFQUFFO0NBQ2xCLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Q0FDcEIsY0FBYyxDQUFDLElBQUksRUFBRTtDQUNyQixZQUFZLENBQUMsSUFBSSxFQUFFO0NBQ25CLGVBQWUsQ0FBQyxJQUFJLEVBQUU7Q0FDdEIsWUFBWSxDQUFDLElBQUksRUFBRTtDQUNuQixhQUFhLENBQUMsSUFBSSxFQUFFO0NBQ3BCLGVBQWUsQ0FBQyxLQUFLLEVBQUU7Q0FDdkIsYUFBYSxDQUFDLEtBQUssRUFBRTtDQUNyQixlQUFlLENBQUMsS0FBSyxFQUFFO0NBQ3ZCLGdCQUFnQixDQUFDLEtBQUssRUFBRTtDQUN4QixjQUFjLENBQUMsS0FBSyxFQUFFO0NBQ3RCLGlCQUFpQixDQUFDLEtBQUssRUFBRTtDQUN6QixjQUFjLENBQUMsS0FBSyxFQUFFO0NBQ3RCLGVBQWUsQ0FBQyxLQUFLLEVBQUU7QUFDekI7QUFDQSxTQUFTLEVBQUUsR0FBRztDQUNaLE9BQU8sT0FBTyxDQUFDO0FBQ2pCO0FBQ0EsRUFBRSxPQUFPO0FBQ1QsRUFBRSxRQUFRO0FBQ1YsU0FBUyxJQUFJO0NBQ1gsSUFBSSxJQUFJO0VBQ04sa0JBQWtCLENBQUM7RUFDbkIsT0FBTztDQUNUO0NBQ0EsS0FBSyxJQUFJLEtBQUssR0FDWixFQUFFLEtBQUs7Q0FDVCxPQUFPO0FBQ1Q7QUFDQSxTQUFTLElBQUk7Q0FDWCxJQUFJLElBQUksT0FBTyxXQUFXLGNBQWMsVUFBVSxLQUFLLEdBQUcsS0FBSyxLQUFLLE9BQU8sS0FBSyxJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSSxFQUFFLGNBQWMsU0FBUyxLQUFLLEtBQUssT0FBTyxLQUFLLElBQUksRUFBRSxTQUFTLENBQUM7Q0FDckssT0FBTyxFQUFFLGNBQWMsS0FBSyxFQUFFLFNBQVMsWUFBWSxPQUFPLGlCQUFpQixLQUFLLEVBQUUsU0FBUyxTQUFTLE1BQU0sS0FBSyxPQUFPLEtBQUssSUFBSSxFQUFFLGNBQWMsV0FBVyxLQUFLLEVBQUUsU0FBUyxVQUFVLFFBQVEsTUFBTSxPQUFPLFVBQVUsZUFBZSxDQUFDLENBQUMsT0FBTztBQUM3TztBQUNBLFNBQVMsRUFBRSxFQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUc7Q0FDNUIsSUFBSSxJQUFJLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTTtFQUNwQyxJQUFJLElBQUksSUFBSSxJQUFJO0VBQ2hCO0dBQ0UsS0FBSyxFQUFFLFVBQVUsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxRQUFRLEdBQUcsQ0FBQztTQUMzRCxDQUFDO0VBQ1IsT0FBTyxJQUFJLEVBQUUsVUFBVSxDQUFDO0NBQzFCLEdBQUcsS0FBSyxHQUFHLEdBQUcsSUFBSSxNQUFNO0VBQ3RCLElBQUksS0FBSyxNQUFNO0dBQ2IsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxRQUFRLEdBQUcsRUFBRSxNQUFNO0dBQzVDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUk7RUFDOUM7RUFDQSxPQUFPLEVBQUUsT0FBTyxHQUFHLEVBQUUsUUFBUSxHQUFHO0NBQ2xDLEdBQUcsSUFBSSxFQUNMLGtCQUFrQixFQUNwQixHQUFHLEtBQUssTUFBTSxRQUFRLEVBQUU7Q0FDeEIsS0FBSyxJQUFJLEtBQUssR0FBRztFQUNmLElBQUksSUFBSSxFQUFFO0VBQ1YsRUFBRSxLQUFLLElBQUksRUFDVCxFQUFFLEVBQUUsRUFBRSxHQUNOLEVBQUUsRUFBRSxFQUFFLEdBQ04sRUFBRSxFQUNKLElBQUk7Q0FDTjtDQUNBLE9BQU87QUFDVDtBQUNBLElBQUksSUFBSSxFQUFFO0FBQ1YsU0FBUyxJQUFJO0NBQ1gsT0FBTyxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ3RCO0FBQ0EsU0FBUyxJQUFJO0NBQ1gsT0FBTyxPQUFPLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNuQztBQUNBLElBQUksSUFBSSJ9
|